如何使用數據庫創建身份驗證管理器?如何創建具有多個狀態的身份驗證管理器
用戶按用戶名查詢=「選擇A作爲用戶名,B AS密碼,userstatus AS啓用。 這userstatus已多次values.0,1,2,3 ...
如何使用數據庫創建身份驗證管理器?如何創建具有多個狀態的身份驗證管理器
用戶按用戶名查詢=「選擇A作爲用戶名,B AS密碼,userstatus AS啓用。 這userstatus已多次values.0,1,2,3 ...
如果使用查詢(假設:userstatus 0已禁用,另一個已啓用):
SELECT a AS username, b AS password, if(userstatus=0,0,1) AS enabled
您可以在裏面添加另一個if語句。
怎麼做您的userstatus字段中的值是否表示?它不僅僅是一個二進制啓用/禁用標誌,但它不完全意味着什麼。
檢查您是否可以將這些值映射到UserDetails
接口的屬性(已啓用,帳戶已過期,賬戶鎖定,憑證已過期)如果是這樣,則只需在子類中覆蓋JdbcDaoImpl.loadUsersByUsername()
,以便根據創建User
對象已報名數據庫。然後,配置此定製sublclass作爲UserDetailsService
:
<authentication-manager>
<authentication-provider user-service-ref='myUserDetailsService'/>
</authentication-manager>
<beans:bean id="myUserDetailsService" class="YourCustomJdbcDaoImpl">
<beans:property name="dataSource" ref="dataSource"/>
</beans:bean>
然後
的Spring Security的其他組件將確保如果啓用了用戶只能得到驗證,沒有上鎖等
也需要獲得userstatus值 – Kandy7 2013-02-12 11:54:50