У меня определен следующий 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 использует по умолчанию и что делает его authentication(...)
для аутентификации (т.е. убедитесь, что имя пользователя соответствует паролю ).
Не могли бы вы объяснить это?