[英]spring security custom authentication requirements
我正在使用Spring Security 3.1.3。 在我正在構建的應用上,當用戶嘗試登錄時,除了檢查其用戶名和密碼外,我還需要進行其他檢查以驗證其帳戶(特別是,該帳戶未設置表明他們是禁止登錄)。 對於執行此操作的最佳方法,我感到困惑。
我應該創建一個身份驗證過濾器bean並將其包含在spring xml中的form-login元素中嗎? 還是應該使用僅在用戶滿足用戶名/密碼要求時才運行的身份驗證成功過濾器來做些事情? 或者是其他東西?
定義實現UserDetailsService的自定義用戶詳細信息服務。 使用用戶憑據填充User類的實例,您可以將字段enabled
或accountNonLocked
用於禁止的用戶。
@Service("userDetailsService")
public class MyUserDetailsService implements UserDetailsService {
@Transactional(readOnly = true)
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// load user data from repository
String password = ...
boolean enabled = ...
// ...
UserDetails user = new User(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
return user;
}
}
然后將服務連接到spring-security.xml
的身份驗證管理器:
<security:authentication-manager>
<security:authentication-provider user-service-ref="userDetailsService">
...
<security:authentication-manager>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.