如何使用数据库创建身份验证管理器?如何创建具有多个状态的身份验证管理器
用户按用户名查询=“选择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