shiro开发,shiro的环境配置(基于spring+springMVC+redis)

特别感谢 lhacker分享的文章,对我帮助很大

http://www.aiuxian.com/article/p-1913280.html

 

 

基本的知识就不在这里讲了,在实战中体会shiro的整体设计理念

 

首先,大体的了解了一下shiro,发现shiro自带的所有功能并不能满足真正的开发需求,决定自定义部分功能。

 

在自定义之前,先把web.xml配置好

 

contextConfigLocationclasspath:shiro-context.xmlorg.springframework.web.context.ContextLoaderListener

shiroFilter
org.springframework.web.filter.DelegatingFilterProxy

targetFilterLifecycle
true

 shiroFilter /* 
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter

encoding
UTF-8



encodingFilter
/*
actionorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:applicationContext.xml1action*.do20

 

 

 

 

 

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,有实力可以自行编写一个权限管理框架(个人推荐自行编写,不需要依赖其他框架)。

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部