zoukankan      html  css  js  c++  java
  • 学习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

  • 相关阅读:
    从0开始的Python学习013编写一个Python脚本
    Spring Cloud Eureka基本概述
    RocketMQ入门案例
    Quartz使用记录总结
    Spring Boot 1.5升级2.1 主要问题汇总
    Eureka客户端注册多网卡下IP选择问题
    Spring Security之动态配置资源权限
    代码规范问题
    Spring Security + OAuth系统环境搭建(一)
    Java并发编程之AQS
  • 原文地址:https://www.cnblogs.com/cainiaomahua/p/8890782.html
Copyright © 2011-2022 走看看