2016-07-14 5 views
2

Kerberos 인증을 위해 apache http 클라이언트를 사용합니다. 나는 다음과 같은 문제가있다. 요청에 따라 서버에서 401 광고 200 응답 사이에 사이에 90 ~ 300 초가 걸린다.Apache HTTP 클라이언트 4.5.2 Kerberos 인증에 너무 오래 걸림

아무런 결과없이 연결 시간 초과, 소켓 시간 초과 및 연결 관리자 시간 초과를 설정하려고했습니다. 서버에서

(401) 이후에 응답 : 여기에서

client -> ACK 
server -> FIN, ACK 
client -> ACK 

-- break between 90 to 300 seconds -- 

client -> GET url 
server -> RST 

는 200 응답, 모든 확인을 시작

와이어 샤크는 다음 나에게 말한다. 나는 왜 아파치 http 클라이언트가 연결을 닫지 않고 새로운 것을 다시 열지 않는지, 왜 그렇게 오래 걸리는지 이해하지 못한다.

도움을 주시면 감사하겠습니다.

업데이트 : 더 많은 KDC 서버가 있으며 모든 사람이 사용할 수있는 것은 아니기 때문에 지연 이유는 max_retries 3 및 요청 당 시간 제한 30 초입니다. 나는 krb5.conf 파일을 구성하려고하지만, 커버 로스는이 문제를 고려하지 않는 것 같다

[libdefaults] 
... 
kdc_timeout = 2000 
max_retries = 1 
+0

반드시 읽어야 할 내용 : https://steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/errors.html >> 야생 추측 : UDP 연결이 KDC에 도달하지 못했지만 TCP 대신 시도하십시오. .. –

답변

1

내가 (파일로 System.out을하고 System.err에 리디렉션) Kerberos를 로깅 설정 한 - 및 모든 KDC가 내 클라이언트에 응답하는 것은 아니므로 응답하지 않는 응답은 30 초 응답을 지연 시켰습니다. x 3 회 = 90 초. 응답하지 않는 KDC 당. 는 Kerberos 구성 파일의 경로가 작동하지 않았다 URI 형식에 있었다, 그래서 나는 절대 경로를 사용

max_retries = 1 kdc_timeout = 1500 (milliseconds)

업데이트 :

구성 파일에 설정하여 해결.