security就是安全机制,安全就是访问权限的设置,最近自己看文档稍微整理了下用户登陆的配置。欢迎补充,谢绝口水。
一: 最简单的你可以这么配置
1 <authentication-manager>
2 <authentication-provider>
3 <user-service>
4 <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" />
5 <user name="bob" password="bobspassword" authorities="ROLE_USER" />
6 </user-service>
7 </authentication-provider>
8 </authentication-manager>
二:可以使用properties文件配置
<authentication-manager>
<authentication-provider>
<user-service id="userDetailsService" properties="classpath:user.properties"/>
</authentication-provider>
</authentication-manager>
自己做实验的时候, 照着文档敲, 出现错误, 后来发现properties属性中指定配置文件的时候classpath要加或者你必须指定明确配置文件的路径
属性文件需要包含下面格式的内容
username=password,grantedAuthority[,grantedAuthority][,enabled|disabled]
比如 :
jimi=jimispassword,ROLE_USER,ROLE_ADMIN,enabled
bob=bobspassword,ROLE_USER,enabled
三:从数据库中读取用户(JdbcDaoImpl)
1 配置
(1)
<authentication-manager>
<authentication-provider>
<jdbc-user-service data-source-ref="securityDataSource"/>
</authentication-provider>
</authentication-manager>
其中securityDataSource 就是你在applicationcontext中配置的数据源
(2)
你还可以直接在security中直接配置数据源
<authentication-manager>
<authentication-provider user-service-ref='myUserDetailsService' />
</authentication-manager>
<b:bean id="myUserDetailsService"
class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
<b:property name="dataSource" ref="dataS" />
</b:bean>
2 数据库
文档上给出的表是这样的
create table users(
username varchar_ignorecase(50) not null primary key,
password varchar_ignorecase(50) not null,
enabled boolean not null);
create table authorities (
username varchar_ignorecase(50) not null,
authority varchar_ignorecase(50) not null,
constraint fk_authorities_users foreign key(username) references users(username));
create unique index ix_auth_username on authorities (username,authority);
不同数据库不一样 稍作改动即可