2017-05-08 4 views
0

BindingType.Browser를 사용하여 OpenCMIS 클라이언트를 개발 중입니다. USER, PASSWORD, BROWSER_URL, BINDING_TYPE 및 REPOSITORY_ID에 필요한 매개 변수를 전달하는 세션을 만들면 예상대로 작동합니다. 세션이 생성되고 추가 단계가 실행될 수 있습니다.OpenCMIS 클라이언트와의 HTTP 프록시 인증

이제 인터넷에 액세스하기 위해 HTTP 프록시를 사용하는 컴퓨터에서 내 클라이언트를 실행하고 싶습니다. 액세스 할 프록시를 지정하려면 시스템 등록 정보 http.proxyUrl 및 http.proxyPort를 설정하십시오. 이것은 프록시가 인증을 필요로하지 않는 한 너무 효과적입니다.

글쎄, 내가 지금 힘들어하고있는 요점입니다. 테스트 프록시에서 인증을 활성화하고 클라이언트 코드에서 PROXY_USER 및 PROXY_PASSWORD 매개 변수를 추가하여 세션을 만들었습니다. 그러나 이것은 효과가없는 것 같습니다. 사용 된 StandardAuthenticationProvider를 디버깅하여 어떤 일이 발생했는지 확인합니다. HTTP 헤더 "프록시 - 인증"은 인증 공급자에 의해 생성되지만 화학 프레임 워크가 해당 헤더없이 요청을 보내는 것으로 보입니다. 내 프록시 로그에는 수신 된 요청에 보안 헤더가 포함되어 있지 않습니다.

CONNECT my.server.org:443 HTTP/1.1 
User-Agent: Java/1.8.0_111 
Host: my.server.org 
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
Proxy-Connection: keep-alive 

의견이 있으십니까?

답변

0

다음 스레드에서 솔루션을 찾았습니다 : Java Web Start: Unable to tunnel through proxy since Java 8 Update 111.

자바 8 업데이트 (111) 이후 기본 인증 방식은 HTTPS를 프록시 할 때 속성을 네트워킹 jdk.http.auth.tunneling.disabledSchemes에 "기본"을 추가하여, 오라클 자바 런타임에서 기본적으로 비활성화되었습니다. 자세한 내용은 8u111 Update Release Notes을 참조하십시오.

프록시를 다시 활성화하려면 jdk.http.auth.tunneling.disabledSchemes = ""으로 설정해야합니다. 응용 프로그램

System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); 
의 주요 방법의 속성을 설정하여 응용 프로그램
-Djdk.http.auth.tunneling.disabledSchemes="" 

또는 런타임에

를 시작할 때이 CANN은 VM 인수를 통해 수행 할 수