簡體   English   中英

春季安全定制認證要求

[英]spring security custom authentication requirements

我正在使用Spring Security 3.1.3。 在我正在構建的應用上,當用戶嘗試登錄時,除了檢查其用戶名和密碼外,我還需要進行其他檢查以驗證其帳戶(特別是,該帳戶未設置表明他們是禁止登錄)。 對於執行此操作的最佳方法,我感到困惑。

我應該創建一個身份驗證過濾器bean並將其包含在spring xml中的form-login元素中嗎? 還是應該使用僅在用戶滿足用戶名/密碼要求時才運行的身份驗證成功過濾器來做些事情? 或者是其他東西?

定義實現UserDetailsS​​ervice的自定義用戶詳細信息服務。 使用用戶憑據填充User類的實例,您可以將字段enabledaccountNonLocked用於禁止的用戶。

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM