Ich denke, die AuthenticationManager
delegiert das Abrufen von persistenten Benutzerinformationen zu einem oder mehreren AuthenticationProvider
s. Die Authentifizierungsanbieter (z. B. DaoAuthenticationProvider, JaasAuthenticationProvider, LdapAuthenticationProvider, OpenIDAuthenticationProvider
) sind auf den Zugriff auf bestimmte Benutzer-Informations-Repositories spezialisiert. Etwas anderes ist in this part des Referenzhandbuchs erwähnt. Es heißt:
Sie möchten möglicherweise zusätzliche AuthenticationProvider-Beans mit dem ProviderManager registrieren, und Sie können dies mithilfe des Elements mit dem ref-Attribut tun, wobei der Wert des Attributs der Name der Provider-Bean ist, die Sie hinzufügen möchten.
Mit anderen Worten, Sie können mehrere AuthenticationProvider angeben, zum Beispiel einen, der nach Benutzern in einer LDAP-Datenbank sucht, und einen anderen, der in einer SQL-Datenbank sucht.
Sie müssten also sehr selten einen AuthenticationManager implementieren, sondern Sie würden einfach AuthenticationProvider implementieren, um die Benutzerdetails von überall her zu holen, von denen Sie sie erhalten möchten? –
Die meisten Authentifizierungsprovider, die Sie benötigen könnten, wurden bereits von den Typen geschrieben, die Spring Security schreiben, und sind in der API-Dokumentation enthalten, damit Sie sie konfigurieren können. Wenn das, was Sie benötigen, noch nicht im Framework ist, ist es wahrscheinlich trivial, die AuthenticationProvider-Schnittstelle für Ihre Zwecke zu implementieren. –
Wie Hans sagte, In Sprint Security, Die Klasse ProviderManager ist eine Implementierung von AuthenticationManager, die Authentifizierungsmethode AuthenticationProvider aufruft. Die Methodensignatur dieses Provider-Managers lautet org.springframework.security.providers.ProviderManager.doAuthentication (Authentifizierung) – Rajesh