我有一个非常普通的 spnego SSO 设置,它针对 Active Directory 服务器进行身份验证。IE SSO 包含 NEGOTIATE 标头 cookie,该 cookie 无需任何提示用户即可正确进行身份验证。Firefox 和 Chrome 不包含 SSO cookie,因此会故障回复到基本身份验证。他们确实正确接收了用户名和密码并正确登录。
但是,我的小烦恼是它在 Firefox 中提示一次,但在 Chrome 中它提示输入密码两次。
关于为什么它可能会提示两次的任何想法?
为了完整起见,设置如下:
<filter>
<filter-name>SpnegoHttpFilter</filter-name>
<filter-class>net.sourceforge.spnego.SpnegoHttpFilter</filter-class>
<init-param>
<param-name>spnego.allow.basic</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.allow.localhost</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.allow.unsecure.basic</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.login.client.module</param-name>
<param-value>spnego-client</param-value>
</init-param>
<init-param>
<param-name>spnego.krb5.conf</param-name>
<param-value>xxxxxxxxxxxxx/krb5.conf</param-value>
</init-param>
<init-param>
<param-name>spnego.login.conf</param-name>
<param-value>xxxxxxxxxxxx/login.conf</param-value>
</init-param>
<init-param>
<param-name>spnego.preauth.username</param-name>
<param-value>xxxxxxxxxxxxxxxx</param-value>
</init-param>
<init-param>
<param-name>spnego.preauth.password</param-name>
<param-value>xxxxxxxxxxxxxxxx</param-value>
</init-param>
<init-param>
<param-name>spnego.login.server.module</param-name>
<param-value>spnego-server</param-value>
</init-param>
<init-param>
<param-name>spnego.prompt.ntlm</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.allow.delegation</param-name>
<param-value>true</param-value>
</init-param>
</filter>