2014-01-24 2 views

답변

3

예 NTLM 인증이 필요한 프록시 서버를 통해 Jersey Client에 연결하도록 구성 할 수 있습니다.

final ClientConfig config = new ClientConfig(); 

config.property(ClientProperties.PROXY_URI, "http://myproxy.com:8000"); 

CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); 

final AuthScope ntlmAuthScope = 
     new AuthScope("myproxy.com", 8000, AuthScope.ANY_REALM, "NTLM"); 

credentialsProvider.setCredentials(
     ntlmAuthScope, 
     new NTCredentials("user", "password", "hostname", "domain")); 

config.property(
     ApacheClientProperties.CREDENTIALS_PROVIDER, credentialsProvider); 

config.connectorProvider(new ApacheConnectorProvider()); 

Client client = ClientBuilder.newClient(config); 

주의 사항 : 여기

이 저지 V2.5 +와 함께 작동해야 적절한 ClientConfig 준비하는 간단한 코드입니다 내가 저지 클라이언트와 아파치 HttpClient를 커넥터를 사용하고를 - 당신은 약간 필요할 수 있습니다 another client transport connector을 사용하는 경우 다른 코드.

:

당신은 또한 당신의 POST/PUT 요청을 프록시 서버에서 돌아 오는 모든 407 개 인증 도전에 대한 응답으로 버퍼 (따라서 반복)되도록하려면 코드에 다음 줄을 추가해야 할 수 있습니다

config.property(ClientProperties.REQUEST_ENTITY_PROCESSING, 
       RequestEntityProcessing.BUFFERED); 
+0

내가 제안 된 솔루션을 시도하지만 난 형태의 게시물한다면 :.. client.target (...)를 요청()을 포스트 (...) 에는 "인증"헤더가 첨부되지 않았습니다됩니다 내 의뢰. 내가 뭔가 잘못하고 있는거야? – finrod

관련 문제