我已經定義了以下豆:什麼是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