Tengo el siguiente frijol definido:¿Cuál es el AuthenticationManager predeterminado en Spring-Security? ¿Cómo se autentica?
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider
user-service-ref="userDetailsService" />
</sec:authentication-manager>
supongo que aquí Spring utiliza algunas implementación predeterminada de AuthenticationManager
.
En mi código Java que tienen:
@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;
}
Aquí AuthenticationManager.authenticate(...)
se llama. Pero me gustaría saber qué implementación de AuthenticationManager
Spring usa de manera predeterminada, y qué hace su authenticate(...)
para autenticarse (es decir, asegúrese de que el nombre de usuario coincida con la contraseña).
¿Podría explicar esto?
esto no responde la parte más concreta de la pregunta: "¿Cuál es el nombre de la implementación predeterminada de la interfaz' AuthenticationManager'? " Mientras que la respuesta de @ Ralph a continuación sí lo hace. ('org.springframework.security.authentication.ProviderManager') –
Dado que solo hay 1 real' AuthenticationManager', me centré en la esencia de la pregunta, que es "¿qué hace' authenticate' do? ", que requiere algunos antecedentes sobre cómo La primavera se arma. En general, he descubierto que una respuesta enriquecedora que cubra los antecedentes que generan la pregunta es más útil que responder una pregunta específica. – cdeszaq