spring security注意点

一个Spring Security的数据库认证实例,要注意以下几点:
(1)请自行加入Spring必须的包,Spring security的包和MySQL的驱动包,当然你也可以换成其他的数据库,但是你要相应的修改spring-common.xml中的dataSource部分
(2)users表必须包含username,password,enabled字段,这三个字段是绝对不能少的,也不能修改类型.另外enabled一定要为1才能登录,当然可以叫别的字段但是必须as为这几个名字。
(4)角色名字必须满足ROLE_XXX的格式(例如:ROLE_ADMIN,ROLE_USER,ROLE_MAMAGER),当然这是默认情况,也可以通过修改配置文件自己设定一个自定义的开头。

(5)注意自定义登陆页面的action名字,以及j_username,j_password。

以上第四条新手尤其注意,困扰了我一天时间。以下附上配置片段。

<authentication-provider>  
        <jdbc-user-service data-source-ref="dataSource"
                           users-by-username-query="select username,password,isvalid as enabled from user where username=?"
                           authorities-by-username-query="select u.username,r.name as authority from user u join role r on u.roleid=r.id where u.username=?"/>
    </authentication-provider>
    
    <beans:bean id="filterSecurityInterceptor"
                class="org.springframework.security.intercept.web.FilterSecurityInterceptor" autowire="byType">
    <custom-filter before="FILTER_SECURITY_INTERCEPTOR"/>
    <beans:property name="objectDefinitionSource" ref="filterInvocationDefinitionSource"/>
    </beans:bean>

    <beans:bean id="filterInvocationDefinitionSource"
                class="cn.javalib.unilines.security.JdbcFilterInvocationDefinitionSourceFactoryBean">
                <beans:property name="dataSource" ref="dataSource"/>
                <beans:property name="resourceQuery" value="select re.url as res_string,r.name from role r join role_resource rr on r.id=rr.role_id join resource re on re.id=rr.resources_id"/>
    </beans:bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值