Ho i seguenti bean definito:Qual è l'AuthenticationManager di default in Spring-Security? Come si autentica?
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider
user-service-ref="userDetailsService" />
</sec:authentication-manager>
Credo che qui Spring usa un po 'di implementazione predefinita di AuthenticationManager
.
Nel mio codice Java ho:
@Resource(name = "authenticationManager")
private AuthenticationManager authenticationManager; // specific for Spring Security
public boolean login(String username, String password) {
try {
Authentication authenticate = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
if (authenticate.isAuthenticated()) {
SecurityContextHolder.getContext().setAuthentication(authenticate);
return true;
}
}
catch (AuthenticationException e) {
}
return false;
}
Qui AuthenticationManager.authenticate(...)
si chiama. Ma vorrei sapere quale implementazione di AuthenticationManager
Spring utilizza per impostazione predefinita e cosa fa il suo authenticate(...)
per autenticare (ad esempio, assicurarsi che il nome utente corrisponda alla password).
Potresti spiegarlo?
questo non risponde alla parte più concreta della domanda: "qual è il nome dell'implementazione predefinita dell'interfaccia' AuthenticationManager'? " Mentre la risposta di @ Ralph sotto fa. ('org.springframework.security.authentication.ProviderManager') –
Dato che c'è solo 1 vero' AuthenticationManager', mi sono concentrato sulla questione della domanda, che è "cosa fa 'authenticate' do?", che richiede qualche background su come La primavera è messa insieme. In generale, ho trovato che, una risposta ricca che copre lo sfondo che sta guidando la domanda è più utile di rispondere a una domanda specifica. – cdeszaq