Verwenden Sie je nach Benutzername und Remote-IP-Adresse unterschiedliche AuthenticationProvider

In einer Spring Security 3.2-basierten Anwendung muss ich Benutzer anhand eines bestimmten Musters in ihrem Benutzernamen UND ihrer Remote-IP-Adresse bei zwei verschiedenen Anbietern authentifizieren.

Wenn sie mit bestimmten Regeln übereinstimmen, sollten sie gegen einen authentifiziert werdenActiveDirectoryLdapAuthenticationProvider, sonst mit einem standardAuthenticationProvider mit einer bereits vorhandenen benutzerdefinierten Implementierung vonUserDetailsService.

Was muss ich verlängern?AuthenticationManager oderAuthenticationProvider ? Jeder Beispielcode wäre sehr dankbar :-)

Hinweis: Ich habe bereits erfolgreich versucht, zwei hinzuzufügen<authentication-provider /> Knoten in<authentication-manager />, und das hat gut funktioniert. Es stört mich aber, dass mein Ldap-Server bei jedem Authentifizierungsversuch getroffen wird (auch bei denjenigen, die nicht dafür vorgesehen sind)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage