我有一个有效的 Kerberos SSO 设置,我将 apache 和 jboss 与 mod_jk 一起使用。Apache 使用以下配置(通过 kerberos)保护 auto-login.htm 页面:
<Location /auto-login.htm>
AuthType Kerberos
AuthName "Kerberos Active Directory Login"
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbAuthRealms KRB.SOMEDOMAIN.COM
KrbServiceName HTTP/server.somedomain.com@KRB.SOMEDOMAIN.COM
Krb5Keytab /etc/krb/krb5.keytab
KrbVerifyKDC on
KrbAuthoritative on
require valid-user
#ErrorDocument 401 /login.htm
</Location>
这 100% 有效,我可以使用 Kerberos/SSO 登录并在我的 java 应用程序中读取 remote_user 变量。
现在的问题是,如果用户无法通过 Kerberos/SSO 登录,我想重定向到未受保护的 login.htm。我想到的解决方案是设置 401 ErrorDocument,但是当我通过在上面的代码中取消注释 #ErrorDocument 401 来设置它时,它总是重定向到 login.htm,因为返回 401 来请求用户凭据本质上是 Kerberos 的一部分/SSO 身份验证过程。因此结果是用户总是以 login.htm 结尾,并且永远不会完成 Kerberos/SSO 登录过程。
任何帮助或替代解决方案将不胜感激。
在此先感谢
皮埃尔