【发布时间】:2016-08-06 19:20:41
【问题描述】:
我使用 apache http 客户端进行 Kerberos 身份验证。我有以下问题: 在来自服务器的 401 和 200 响应之间,它需要 90 到 300 秒,具体取决于请求。
我尝试设置连接超时、套接字超时和连接管理器超时,但没有任何结果。
Wireshark 告诉我以下内容:
来自服务器的 401 响应后:
client -> ACK
server -> FIN, ACK
client -> ACK
-- break between 90 to 300 seconds --
client -> GET url
server -> RST
从这里开始 200 响应,一切正常。我不明白为什么apache http客户端不关闭连接并重新打开一个新连接,为什么需要这么长时间?
任何帮助将不胜感激。
更新: 有更多的 KDC 服务器并且不是每个人都可用,延迟的原因是 max_retries 3 和每个请求超时 30 秒。 我尝试配置 krb5.conf 文件,但 Kerberos 似乎没有考虑这一点:
[libdefaults]
...
kdc_timeout = 2000
max_retries = 1
【问题讨论】:
-
必读:steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/… >> 疯狂猜测:您的问题可能与 UDP 连接无法到达 KDC 有关,请尝试使用 TCP...
标签: java kerberos apache-httpclient-4.x