У меня есть следующий bean:
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider
user-service-ref="userDetailsService" />
</sec:authentication-manager>
Я предполагаю, что здесь Spring использует некоторую реализацию по умолчанию AuthenticationManager
.
В моем коде Java я:
@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;
}
Здесь вызывается AuthenticationManager.authenticate(...)
. Но я хотел бы знать, какая реализация AuthenticationManager
Spring используется по умолчанию и что ее authenticate(...)
делает для аутентификации (то есть убедитесь, что имя пользователя соответствует паролю).
Не могли бы вы объяснить это?