我正在使用 spring-security-kerberos 来验证远程用户 - 这很好用。我遇到的问题是,有时用户没有 kerberos 票证,我需要使用另一种形式的身份验证。为此,我编写了自己的身份验证提供程序 ( myCusomAuthenticationProvider
)。此自定义提供程序应要求用户进行 BASIC 身份验证,并使用多个 LDAP 服务器根据用户名和密码对用户进行身份验证。
我看到的问题是我的自定义身份验证管理器总是将 KerberosServiceRequestToken 作为身份验证令牌,而我没有设法获取 UsernamePasswordAuthenticationToken。如何让服务器将“协商”和“基本”方法返回给浏览器并让我自己的提供者处理基本身份验证?
我已经找到了一种方法来通过对 spring-security-kerberos 代码进行一些调整来做到这一点,但我正在尝试找到一种更好的方法来做到这一点。
web.xml:http ://pastebin.com/embed.php?i=ZidnBMwZ
根上下文与 krb.xml:http ://pastebin.com/c8vfUZfV