安怡的相公

前面有光

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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);


    不同数据库不一样 稍作改动即可

posted on 2011-07-20 14:19  包子先森  阅读(1053)  评论(0编辑  收藏  举报