学习Acegi应用到实际项目中(6)

  在企业应用中,用户的用户名、密码和角色等信息一般存放在RDBMS(关系数据库)中。前面几节我们采用的是InMemoryDaoImpl,即基于内存的存放方式。这节我们将采用RDBMS存储用户信息。

  UserDetailsService的接口实现有JdbcDaoImpl和InMemoryDaoImpl。JdbcDaoImpl通过数据库获取用户名、密码和角色信息,它将是接下来的重点内容。

1、简单JdbcDaoImpl配置

  默认时, JdbcDaoImpl会采用如下SQL获得用户名、密码、启用状态:

    SELECT username, password, enabled From users WHERE username=?

  类似地, JdbcDaoImpl会采用如下SQL获得用户的授权信息(角色集合):

    SELECT username, authority FROM authorities WHERE username=?

  所以, 只要数据库中有这两个表和相应字段, 那么只需这样配置:

<span style="font-size: small;">
    <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">  
        <property name="userDetailsService" ref="jdbcDaoImpl" />  
        ...  
    </bean>  
    <bean id="jdbcDaoImpl" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">  
        <property name="dataSource">  
            <ref bean="dataSource" />  
        </property>  
    </bean>  
</span> 

  在这里,我们只需提供dataSource(数据源)的配置信息,并将dataSource注入到JdbcDaoImpl中。

  后半部分是SQL相关部分,此处不做详细展开,如需了解,请点击:http://zhanjia.iteye.com/blog/258282

 

转载于:https://www.cnblogs.com/cainiaomahua/p/8890782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值