我正在使用 spnego http://spnego.sourceforge.net要在我的系统上进行单点登录,问题是输入正确的密码也会一次又一次地提示。
有时输入两次即可加入系统,有时则需要输入相同的用户名和密码10次以上才能进入系统。
登录系统后,可能会随机多次提示输入密码,一次又一次。
提前致谢
最佳答案
我还没有尝试过特定的 spnego 模块,但我以前遇到过这个问题。
SPNEGO 和两个登录提示的问题通常与以下内容有关:
应用程序的登录服务配置为允许协商和基本:
WWW-Authenticate: Negotiate WWW-Authenticate: basic
如果在 Internet Explorer 中启用了 Windows native 身份验证,但 Windows 客户端无法检索该服务的 Kerberos 票证(由于某种原因),IE 将
提示登录,但无论您在此处编写什么,它都会使用以下方式发送 NTMLSSP token 授权:协商
使用 NTMLSSP token 进行身份验证将失败,您将收到辅助登录提示,该提示将使用 Basic 提交 授权:基本
但不知道为什么有时验证两次以上就能让你进入..
要进一步调查问题:
- 检查服务器日志文件(设置 java 选项 -Dsun.security.krb5.debug=true 和 web.xml spnego.logger.level=1)以获取线索。
- 检查 Windows 客户端是否已登录到域。
- 检查 Internet Explorer 中是否启用了 Windows native 身份验证。
- 检查网站是否已添加到 Internet Explorer 中的本地 Intranet 站点(或者在网站名称中不使用点“.”即可使用)。
- 检查是否为您的应用服务器配置了 keytab、krb5.conf 和 login.conf。 (请参阅 spnego 文档 pre_flight 和 reference_docs)
- 检查 key 表中使用的主体名称是否为您服务的 DNS A 记录,而不是 DNS CNAME 记录。
- Fiddler2 是调试网络流量的优秀工具。安装并查看 Internet Explorer 对身份验证质询 (HTTP 401) 的响应。
- 如果 Internet Explorer 确实提交了 NTMLSSP token ,您可能还需要使用 Wireshark 并过滤“Kerberos”流量,以查看您的域 Controller 是否使用包含用于访问您的服务的 Kerberos 票证的 TGS-REP 进行响应。
如果您仍然不走运,如果您可以提供全部或部分内容,我们也许可以为您提供进一步帮助
- spnego 配置
- 服务器日志(如果有相关内容)
- Fiddler2 跟踪
- Wireshark 跟踪
奥伊温德
关于java - SPNEGO与Java多次提示密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20341553/