我已经定义了以下豆:什么是Spring-Security中的默认AuthenticationManager?它如何进行身份验证?
<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(...)
为了进行身份验证(即确保用户名与密码匹配)。
你能解释一下吗?
这并不回答问题的最具体部分:“AuthenticationManager'接口的默认实现的名称是什么? @拉尔夫的回答如下。 ('org.springframework.security.authentication.ProviderManager') – 2016-03-03 15:44:33
由于只有一个真正的'AuthenticationManager',我专注于问题的核心,即“认证'做什么?”,这需要一些背景介绍如何春天放在一起。总的来说,我发现,涵盖导致问题背景的丰富答案比回答特定问题更有用。 – cdeszaq 2016-03-07 21:40:02