Apache HttpClient는 비밀번호를 알지만 계속 407을 받는다
Apache HttpClient 프록시 자격 증명을 실제 프록시 경로에 맞추고 인증 요청과 로그인 실패를 구분합니다.
공급자에 올바른 비밀번호가 있어도 실제로 선택된 프록시에 맞는 자격 증명이 만들어지는 것은 아닙니다. 해당 엔드포인트의 스킴, 호스트, 포트부터 확인하십시오. 호스트 필드는 보통 호스트 이름이나 IP만 받으며 전체 URL은 받지 않습니다.
- 인증 교환 전체를 읽으십시오. 407 뒤에 재시도가 수락되는 경우는 정상일 수 있습니다. 로그인을 거부로 처리하기 전에 최종 결과가 여전히 407인지 확인하십시오.
- 경로와 자격 증명 범위를 비교하십시오. 실제 호스트/포트와 배포된 HttpClient 5 AuthScope 가 정의하는 다른 필드를 맞추십시오. 포트가 틀리면 BasicCredentialsProvider에 적절한 항목이 남지 않을 수 있습니다.
- 메서드와 ID를 확인하십시오. 프록시가 지원되는 메서드를 제공했습니까? 재시도가 예상한 연결을 사용했습니까? 운영자가 도메인 자격을 갖춘 계정이나 다른 문서화된 형식을 요구합니까?
설치된 주 버전 API를 사용하십시오. HttpClient 4의 인증 캐시 레시피는 버전 5로 그대로 옮겨지지 않습니다. 임의의 사용자 이름 변형을 시도하는 대신 운영자의 계정 요구 사항을 사용하십시오.
선제적 인증은 또 다른 의도적 선택입니다. 호환되는 스킴에서는 왕복 한 번을 줄일 수 있지만 자격 증명이 나가는 시점이 달라지고 지원되는 범위가 필요합니다. 엔드포인트 불일치나 지원되지 않는 메서드에 대한 첫 번째 수정이 될 수는 없습니다.
문제가 된 프록시 ID, 메서드, 범위 일치, 최종 상태를 편집된 진단 정보 에 보관하십시오. 비밀번호와 자격 증명이 담긴 원시 추적은 그 비교에 필요하지 않습니다.