2013-08-22 5 views
0

apache camel을 통해 NTLM 인증 서비스를 호출하려고합니다. 아래의 Java DSL 구성없이 직접 전화를 걸면 401 상태로 실패합니다. 서비스를 호출 할 때 NTLM 인증 모드, 사용자 이름 및 암호를 추가하는 방법이 있습니까?Apache Camel - NTLM 구성

from("direct:link.XXX.soap.out")      
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST)) 
.setHeader(Exchange.CONTENT_TYPE, constant("application/soap+xml")) 
.log(LoggingLevel.WARN,"routes","SOAP message:\n${body}") 
.to("http://projectname.csq.YYY.net/api/service") 
.to("file:logs/XXX.out.soapreply"); 

답변

1

Camel은 HTTP 제작자를 위해 Apache HTTP 클라이언트를 사용합니다. NTLM은 기본값으로 supported이어야합니다.

그러나 이것은 HTTP 클라이언트 버전 4에 적용됩니다. 버전 3은 NTLM 지원이 제한적입니다 (리버스 엔지니어링). Camel에서 버전 4를 사용하려면 .to("http4://projectname.csq.YY.net/api/service")을 대신 사용하십시오.

+0

예, 낙타는 NT 인증이 기본값 인 Linux 서버에서 실행됩니다. 따라서 요청을 게시하는 동안 NT 사용자 ID와 암호를 명시 적으로 지정해야합니다. 이견있는 사람? –

+0

하지만 http4 구성 요소를 사용하고 샘플 코드에있는 것처럼 보이는 http3을 사용하지 않습니까? –