원격 URL에서 RSS 피드를로드하는 Tomcat 6에서 실행되는 Java webapp가 있습니다.Java 프록시 인증
나는 RSS 피드와 다른 형식을 처리하기 위해 Rome을 사용합니다. 연결 부분은 다음과 같습니다.
코드는 프록시를 사용하는이 새로운 클라이언트를 제외하고는 정상적으로 작동합니다.
가 프록시를 사용하기 위해, 나는 http.proxyHost를하고 프락시 포트 시스템 속성을 설정합니다
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", proxyPort);
System.setProperty("https.proxyHost", proxyHost);
System.setProperty("https.proxyPort", proxyPort);
는 HTTP GET 괜찮아 프록시로 구성되어,하지만 지금은 (불량 게이트웨이 HTTP를 502 오류가 발생하거나 비슷한 것).
Wireshark로 HTTP 교환을 분석하면 프록시에서 인증이 필요하다는 것을 알았습니다. 그것은 HTTP 507을 보냅니다. Java는 어떻게 든 인증을 시도하지만 잘못된 사용자 이름과 암호를 사용합니다. 내가 모르는 비밀 번호와 마찬가지로 호스트 이름을 사용자 이름으로 사용하는 것 같습니다.
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
logger.info(MessageFormat.format("Generating PasswordAuthentitcation for proxy authentication, using username={0} and password={1}.", username, password));
return new PasswordAuthentication(username, password.toCharArray());
}
});
은 이제 내 문제는 그것이
을 무시된다 : 그래서 나는 사용자 이름 + 암호를 지정하는 인증 자 메소드를 구현하기 위해 노력했다. getPasswordAuthentication 메소드가 호출되지 않습니다. 로깅 구문이 로그 파일에 표시되지 않고 Wireshark를 사용하여 호스트 이름을 여전히 사용자 이름으로 사용하고 있음을 알 수 있습니다.왜? 자바는 Authenticator와상의하지 않고 자체적으로 인증을 시도하는 것 같습니다.
프록시는 인증에 NTLM을 사용하는 MS 장치 인 것 같습니다. 이것을 처리 할 자바 내장 메커니즘이 있습니까? 응용 프로그램이 실행되는 컴퓨터는 Windows Server 2008 R2입니다.
고맙습니다. 그것은 우리를 위해 일합니다. –