spring security之使用数据库来读取用户

     上一讲中我们是使用xml的形式配置了一个User-service,是直接在xml中配置了用户名,密码。而在实际开发中,我们会将用户信息保存在数据库里面,所以有必要让spring security从数据库中进行加载用户信息。

    首先要在数据库里面加两张表,这个是spring security默认要使用的两张表

   users表,用来保存用户名和密码以及是否禁用,spring security查询这张表来读取用户信息,username是主键,

CREATE TABLE users(     username VARCHAR(50) NOT NULL PRIMARY KEY,     `password` VARCHAR(50) NOT NULL,     enabled BOOLEAN NOT NULL );

  authorities表,用来保存用户名和相应的权限,用户名指向users表的主键.

CREATE TABLE authorities (     username VARCHAR(50) NOT NULL,     authority VARCHAR(50) NOT NULL,     CONSTRAINT fk_authorities_users FOREIGN KEY(username) REFERENCES users(username) );

再为authorities添加唯一索引,加快查询效率

CREATE UNIQUE INDEX ix_auth_username ON authorities (username,authority);
然后在xml配置里面修改一下provider
<authentication-manager>
		<authentication-provider>
			<jdbc-user-service data-source-ref="datasource"/>
		</authentication-provider>
	</authentication-manager>

然后添加一个datasource

<beans:bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <beans:property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true"/>
        <beans:property name="username" value="root"/>
        <beans:property name="password" value="root"/>
    </beans:bean>
这样就完成了,spring security会在启动时,读取这两张表,并加载进缓存里面。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值