spring security3.x移植思路

刚开始研究spring security3.x,未入门径,看了一些文档版本不详,黑暗中继续摸索。
偶见spring-security3官方demo中的spring-security-samples-tutorial,可在tomcat中直接运行。想以此为基点,向项目中做初步迁移。

引入的包,spring-security-taglibs.jar,spring-security-web.jar,spring-security -core.jar,spring-config.jar. 这些开发包包含在spring-security3.x中需要从官网独立下载. 看网上各路资料以为spring包中有,找了很久才发现,特此强调一下。然后是web包中加入同样的内容,按照demo的位置加入application -business.xml和application-security.xml文件,保留xml头 去掉内容。运行测试,发现application-security.xml缺少一些必要的配置,补充

 

<http auto-config='true'>
   
    </http>
   
   
    <authentication-manager>
        <authentication-provider>
            <password-encoder hash="md5"/>
            <user-service>
                <user name="rod" password="a564de63c2d0da68cf47586ee05984d7" authorities="ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER" />
                <user name="dianne" password="65d15fe9156f9c4bbffd98085992a44e" authorities="ROLE_USER,ROLE_TELLER" />
                <user name="scott" password="2b58af6dddbd072ed27ffc86725d7d3a" authorities="ROLE_USER" />
                <user name="peter" password="22b5c9accc6e1ba628cedc63a72d57f8" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>

运行通过。后面就是修改了,继续翻文档。

 

参考了Spring Security 2 配置精讲 的内容,比较详细,不过还是无法领悟未能直接通过配置注入权限。

family168 看到一个AuthenticationExample的例子,完全跳过各种配置手动插入了权限进去,拿来一试,居然就成功了。考虑到其他的方法侵入性也不小,不如还是手写方便。现在为止迁移的结果:登录界面无须任何修改,struts配置无须修改,web.xml增加部分内容,application-service.xml简单配置,增加一个类RoleAuthenticationManager实现AuthenticationManager,修改登录action,在获取用户信息后注入权限

 

 

AuthenticationManager am = new RoleAuthenticationManager("ROLE_USER","ROLE_ADMIN");
Authentication req = new UsernamePasswordAuthenticationToken(username, password);
SecurityContextHolder.getContext().setAuthentication(am.authenticate(req));

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值