提问者:小点点

Apache Http Client 4.5.2Kerberos身份验证耗时过长


我使用apache超文本传输协议客户端进行Kerberos身份验证。我有以下问题:在服务器的401 ad 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超文本传输协议客户端不关闭连接并重新打开一个新的,为什么需要这么长时间?

任何帮助将不胜感激。

更新:有更多的KDC服务器,并不是所有人都可用,延迟的原因是max_retries3,每次请求超时30秒。我试图配置krb5. conf文件,但似乎Kerberos没有考虑到这一点:

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

共1个答案

匿名用户

我已经启用了Kerberos-日志记录(重定向System. out和System.err到文件中)-并发现并非所有KDC都响应我的客户端,因此未响应的KDC延迟响应30秒。x 3次尝试=90秒。每个没有响应的KDC。

通过在配置文件中设置解决:

max_retries=1kdc_timeout=1500(毫秒)

更新:Kerberos配置文件的路径是URI格式,这不起作用,所以我使用绝对路径。