最近学习shiro框架,在用户没有权限的情况下想让其跳转到403页面,结果非自己预想的效果.后来找到一个解决办法如下: 转载来源 SpringBoot中集成Shiro的时候, 配置setUnauthorizedUrl("/403")了,但是不起作用,只会在控制台打印UnauthorizedException异常信息: 原因: Shiro源码中是这样做的: private void applyUnauthorizedUrlIfNecessary(Filter filter) { Stri…
一 shiro的session.request和response与服务端容器自身的这三个对象的关系 在web.xml中配置了一个Filter,拦截/*,所有的uri.在拦截器中还会调用ShiroFilter这个filter,如下图1,可以看出ShiroFilter继承AbstractShiroFilter,查看AbstractShiroFilter源码的doFilterInternal方法,(可以看上一篇shiro中关于这个方法的作用).在这个方法中如图2,  protected Servlet…
解决方法: 在shiro配置文件中添加(异常全路径做key,错误页面做value) <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.apache.shiro.authz.Una…
本文大纲 一.简介 二.缓存的概念 三.自定义实现缓存机制 四.什么是Ehcache 五.Ehcache怎么用 六.Spring对缓存的支持 七.Spring+Ehcache实现 八.Spring+Shiro+Ehcache实现 九.总结 一.简介 在项目中,用到Shiro来做验证授权的控制.但在实际使用的时候,发现用户每访问一个功能,都会重新到UserRealm中获取一次权限.这样子会花费大量的系统系统.此时就想到了使用缓存,查了一下,Shiro也确实支持Authorization和Authe…
cacheManager主要用于对shiro中的session.realm中的认证信息.授权信息进行缓存. 1.类结构 2.接口及类介绍 CacheManager 提供根据名字获取cache的作用. AbstractCacheManager 本地提供并发map做缓存.提供抽象类给子类继承,子类只需要创建cache即可. MemoryConstrainedCacheManager 实现上面的抽象类.创建一个map作为缓存. 3.Cache相关介绍 Cache接口 主要提供缓存相关的增删改查方法.…
6.1 Realm [2.5 Realm]及[3.5 Authorizer]部分都已经详细介绍过Realm了,接下来再来看一下一般真实环境下的Realm如何实现. 1.定义实体及关系   即用户-角色之间是多对多关系,角色-权限之间是多对多关系:且用户和权限之间通过角色建立关系:在系统中验证时通过权限验证,角色只是权限集合,即所谓的显示角色:其实权限应该对应到资源(如菜单.URL.页面按钮.Java方法等)中,即应该将权限字符串存储到资源实体中,但是目前为了简单化,直接提取一个权限表,[综合示例…
其实关于Shiro的一些学习笔记很早就该写了,因为懒癌和拖延症晚期一直没有落实,直到今天公司的一个项目碰到了在集群环境的单点登录频繁掉线的问题,为了解决这个问题,Shiro相关的文档和教程没少翻.最后问题解决了,但我觉得我也是时候来做一波Shiro学习笔记了. 本篇是Shiro系列第四篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看源码追寻Shiro中的过滤器的实现原理…
linux中test与[ ]指令的作用: 在Linux中,test和[ ]功能是一样的,类似于c语言中的( ).不过Linux的test和[ ]是指令.在和if或者while联用时要用空格分开.…
Flex中 Array 的IndexOf 的作用 1.说明    indexOf用于在索引中从小到大查找,假设查得到就返回索引值,查不到就返回-1: 2.实例 (1)设计源代码 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe…
初学者难免有点混淆java中instanceof和getClass()的作用,  下面就来一一讲解. 父类A: class A { } 子类B: class B extends A { }  构造对象 Object o1 = new A(); Object o2 = new B(); 一.instanceof     演示一: 1.o1 instanceof A => true  2.o1 instanceof B => false  3.o2 instanceof A => true…