java - SPNEGO与Java多次提示密码

标签 java spnego

我正在使用 spnego http://spnego.sourceforge.net要在我的系统上进行单点登录,问题是输入正确的密码也会一次又一次地提示。

有时输入两次即可加入系统,有时则需要输入相同的用户名和密码10次以上才能进入系统。

登录系统后,可能会随机多次提示输入密码,一次又一次。

提前致谢

最佳答案

我还没有尝试过特定的 spnego 模块,但我以前遇到过这个问题。

SPNEGO 和两个登录提示的问题通常与以下内容有关:

  1. 应用程序的登录服务配置为允许协商和基本:

    WWW-Authenticate: Negotiate
    WWW-Authenticate: basic
    
  2. 如果在 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/

相关文章:

java - Apache httpclient 4.5.3 SPNEGO 握手不存储 cookie

java - 如何在双链表的末尾添加节点?

java - 在双面模式下使用 Java 打印横向文档

用于在应用程序之间委派任务的 Java 企业架构

spring - BadCredentialsException : Kerberos validation not succesfull

java - 配置 SPNEGO HTTP Servlet 过滤器

java - 在 keycloak 中跳过 kerberos sso 身份验证

java - Ant 编译但不运行或创建 jar

java - 如何修复用其他可能值替换列表原始值的代码?

c - 如何使用 Kerberos 票证中的 PAC 信息