Kombinieren Sie benutzerdefinierte Authentifizierungsfilter mit Spring-Security-Kerberos

Ich benutze Spring-Security-Kerberos, um die Remote-Benutzer zu authentifizieren - das funktioniert gut. Das Problem, das ich habe, ist, dass Benutzer manchmal nicht über das Kerberos-Ticket verfügen und ich eine andere Form der Authentifizierung verwenden muss. Ich habe meinen eigenen Authentifizierungsanbieter geschrieben (myCusomAuthenticationProvider) für diesen Zweck. Dieser benutzerdefinierte Anbieter sollte den Benutzer nach der BASIC-Authentifizierung fragen und verwendet mehrere LDAP-Server, um den Benutzer anhand des Benutzernamens und des Kennworts zu authentifizieren.

Das Problem, das ich sehe, ist, dass mein benutzerdefinierter Authentifizierungsmanager immer KerberosServiceRequestToken als Authentifizierungstoken erhält und ich es nicht schaffe, UsernamePasswordAuthenticationToken zu erhalten. Wie kann ich den Server veranlassen, sowohl die "Negotiate" - als auch die "Basic" -Methode an den Browser zurückzugeben und die Basisauthentifizierung von meinem eigenen Anbieter ausführen zu lassen?

Ich habe einen Weg gefunden, dies mit ein paar Änderungen am Spring-Security-Kerberos-Code zu tun, aber ich versuche, einen besseren Weg zu finden, dies zu tun.

web.xml:http://pastebin.com/embed.php?i=ZidnBMwZ

root-context-with-krb.xml:http://pastebin.com/c8vfUZfV

Antworten auf die Frage(1)

Ihre Antwort auf die Frage