shiro开发,shiro的环境配置(基于spring+springMVC+redis)
特别感谢 lhacker分享的文章,对我帮助很大
http://www.aiuxian.com/article/p-1913280.html
基本的知识就不在这里讲了,在实战中体会shiro的整体设计理念
首先,大体的了解了一下shiro,发现shiro自带的所有功能并不能满足真正的开发需求,决定自定义部分功能。
在自定义之前,先把web.xml配置好
contextConfigLocation classpath:shiro-context.xml org.springframework.web.context.ContextLoaderListener
shiroFilter
org.springframework.web.filter.DelegatingFilterProxy
targetFilterLifecycle
true
shiroFilter /*
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
action org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:applicationContext.xml 1 action *.do 20
1、自定义shiro的验证
shiro的验证并不能实现我想要的功能,我想自己实现我想要的功能,这里自定义role验证,新建一个
AnyRolesAuthorizationFilter继承AuthorizationFilter,重写 isAccessAllowed方法,这个类会在下面是自定义role权限验证的配置
/edit.html = anyRoles[admin]/** = anon
/*** 自定义角色权限验证* @author eguid**/
public class AnyRolesAuthorizationFilter extends AuthorizationFilter{@Overrideprotected boolean isAccessAllowed(ServletRequest req,ServletResponse res, Object arg2) throws Exception {
}
}
2、自定义授权和缓存管理
我们要自定义授权管理和缓存管理
其中,
授权管理由realm定义,用于管理用户授权;这里我们自定义一个类MyShiroRealm用于重写realm授权。
缓存管理,主要用于管理shiro内部对session的管理,我们需要session放到redis数据库里,所以这里也要重写
我们使用CustomShiroCacheManager自定义session管理,这个管理器需要用到数据库的操作,所以我们用shiroCacheManager类来处理数据的增删改查业务,redisManager是已经封装好的redis数据库操作包
配置完这些,你会发现,真正要用shiro,你得把全部实现类重写才能满足我们的需求,可是这个简单需求我完全可以用aop直接实现,而不需要shiro框架;而复杂的权限,shiro根本没办法控制;所以到此为止,给shiro得出结论就是简单但是不通用,不适合复杂权限管理,于是果断放弃shiro。
至于选用什么框架适合,我觉得如果是简单权限管理完全不需要框架(可以采用jdk自带secruity),复杂权限可以采用spring-secruity,有实力可以自行编写一个权限管理框架(个人推荐自行编写,不需要依赖其他框架)。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
