读书人

ralasafe跟shiro的集成

发布时间: 2012-06-30 17:20:12 作者: rapoo

ralasafe和shiro的集成

????? 可能会有人问,有了ralasafe,为什么还要和shiro进行集成呢?对于一套系统完整的安全解决方案,应该体现在三个方面:

?????? 1 用户认证

?????? 2 功能权限控制

?????? 3 数据权限控制

????? 而ralasafe一直专注于做后两个方面,对于用户认证部分,我们从DEMO中可以看到只有一个简单的实现,离目前实际项目有一定的差距,所以需要一种安全框架去帮助我们实现用户认证部分,这也是shiro在这里起到的作用。

?

????? 第一步?

????? 用户我们的项目是所用MAVEN管理的jar包,所以首先要把shiro的jar包放在pom文件里面,如下图所示:

????? ralasafe跟shiro的集成

ralasafe跟shiro的集成

????? 用的版本是1.1.0

?

????? 第二步

? ? ? 我们在web.xml配置。如下图所示:

????? ralasafe跟shiro的集成ralasafe跟shiro的集成

???? 我这里拦截的是.do 和 .jsp 的请求

?

???? 第三步

???? 因为shiro和Spring是集成的,所以我们要进行配置

???? ralasafe跟shiro的集成ralasafe跟shiro的集成

这里有几个我们要配置的,<property name="realm" ref="ecmsRealm"/>这个bean是我们要注入的,loginUrl,successUrl,unauthorizedUrl这三个参数是需要我们配置的。filterChainDefinitions也是需要我们去配置的,anon代表匿名可以访问的,authc代表登陆后才能看到的。

这里再来介绍一个刚刚注入的bean

ralasafe跟shiro的集成

这个bean继承了AuthorizingRealm的抽象类,需要去实现两个方法。基本上配置就完成了。

?

下面再来介绍一下登陆和注销的实现,先看一下登陆的实现,首先是登陆页面

ralasafe跟shiro的集成

?

跟我们平常用的登陆页面一样,向后台传入username和password两个参数

?

ralasafe跟shiro的集成

?

这就是后台的登陆和注销的代码,在登陆的时候调用?WebRalasafe.setCurrentUser(req, convertUser(req));

欺骗ralasafe,已经登陆,在注销的时候调用WebRalasafe.setCurrentUser(req, null),模拟ralasafe注销。

因为ralasafe有自己的user实现,还需要转换User对象, converUser方法负责两个User转换,

?

ralasafe跟shiro的集成

1 楼 fengyonglei 2011-07-25 学习 学习 2 楼 metadmin 2011-07-25 这是怎么了?
踩也要个理由吧。难道大家都浮躁了~ 3 楼 huadong19890803126 2011-07-25 很少用到shiro,到与ralasafe集成,就顶个,学习学习 4 楼 zhang4044 2011-09-20 [/color][color=brown]jhjhjhjh 5 楼 solomon 2012-04-20 学习了。

支持分享.

读书人网 >开源软件

热点推荐