2012-09-13 3 views
0

Jersey Rest 클라이언트의 인증을 사용하여 프록시 설정을 구성하려고합니다. 처음에는 프록시가 인증을 필요로하지 않는 다음 코드를 사용했습니다.저지 - 버전 1.14의 프록시 자동 인증

ClientConfig config = new DefaultClientConfig(); 
Client client = Client.create(config); 

그러나 프록시가 인증을 요구하면 작동하지 않습니다. 다음 코드 단편을 사용하여 HttpComponents 프로젝트에서 HttpClient 4.2.1과 함께 Jersey Apache http 클라이언트를 사용해 보았습니다.

final ApacheHttpClientConfig config = new DefaultApacheHttpClientConfig(); 
Map<String, Object> configProp = config.getProperties(); 
final String proxyHost = System.getProperty("http.proxyHost"); 
final String proxyPort = System.getProperty("http.proxyPort"); 

if(proxyHost != null && proxyPort != null){ 
     configProp.put(DefaultApacheHttpClientConfig.PROPERTY_PROXY_URI, "http://" + proxyHost + ":" + proxyPort); 

     final String proxyUser = System.getProperty("http.proxyUser"); 
     final String proxyPassword = System.getProperty("http.proxyPassword"); 
     if(proxyUser != null && proxyPassword != null){ 
      ApacheHttpClientState state = config.getState(); 
      state.setProxyCredentials(AuthScope.ANY_REALM, proxyHost, Integer.parseInt(proxyPort), proxyUser, proxyPassword); 

     } 
} 

config.getState()에서 "ClassNotFoundException"오류가 발생합니다. HttpClient에서 Credentials 클래스의 경로가 변경되었고 저지 Apache Http Client가 Credentials 클래스를 찾을 수없는 것 같습니다.

제 질문은 "저지 또는 저지의 일반 버전에서 프록시 인증을 처리하는 다른 방법이 있습니까? 제가 잘못 했습니까?"

감사

-D JVM을 매개 변수로 제공

답변

0

Ok Jersey Apache Client 라이브러리와 HttpComponents HttpClient 라이브러리 사이에 종속성 문제가있는 것으로 보입니다. 저지 아파치 클라이언트 라이브러리와 Commons HttpClient 라이브러리를 사용하고 완벽하게 정상적으로 작동했습니다.

0

보십시오.

+0

프록시 매개 변수를 -D jvm 매개 변수로 전달하지만 프록시가 인증을 요구하면 어떻게 든 작동하지 않습니다. 왜 그런 생각이 들지? – coderC