boot 中自定义shiro过滤器的拦截顺序

简介: @boot 中filter SecurityUtils.getSubject()No SecurityManager accessible

场景

   *  在spring boot +spring shiro 
   *   自定义filter的拦截器 并从doFilter中调用 SecurityUtils.getSubject().getPrincipal() 
   *   抛出
   *   No SecurityManager accessible to the calling code, either bound to the 
   *       org.apache.shiro.util.ThreadContext or as a vm static singleton. 
   *       This is an invalid application configuration.



解决方案

@Bean(“shiroFilter”)
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
}


无标题.png


  • 注意!上图是关键 (相当于web.xml中定义shiro的执行顺序)


相关文章
|
存储 安全 NoSQL
SpringSecurity 核心过滤器——CsrfFilter
Spring Security除了认证授权外功能外,还提供了安全防护功能。本文我们来介绍下SpringSecurity中是如何阻止CSRF攻击的。
289 0
|
Java 容器
过滤器和拦截器的区别
Filter 也称为过滤器,基于Servlet实现,拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行,基于AOP思想,对方法进行增强。和servlet 中的过滤器类似,都是对用户请求进行处理。
84 0
|
存储 安全 Java
SpringSecurity 核心过滤器——SecurityContextPersistenceFilter
SecurityContextHolder,这个是一个非常基础的对象,存储了当前应用的上下文SecurityContext,而在SecurityContext可以获取Authentication对象。也就是当前认证的相关信息会存储在Authentication对象中。
190 0
|
XML 监控 前端开发
SpringBoot实现过滤器、拦截器与切片(一)
SpringBoot实现过滤器、拦截器与切片
|
Java Spring
SpringBoot实现过滤器、拦截器与切片(二)
SpringBoot实现过滤器、拦截器与切片
|
SQL 监控 前端开发
Springboot过滤器和拦截器详解及使用场景
过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。
|
缓存 安全 网络安全
配置Shiro核心过滤器与相关配置
<!--anon 表示匿名访问,不需要认证以及授权--> <!--authc表示需要认证 没有进行身份认证是不能进行访问的--> <!--roles[admin]表示角色认证,必须是拥有admin角色的用户才行--> <!--user表示用户不一定已通过认证,只要曾被Shiro记住过登录状态的用户就可以正常发起请求,比如rememberMe--> <!--perms表示指定过滤规则,这个一般是扩展使用,不会使用原生的--> <!--port表示请求的URL端口验证--> <!--ssl表示安全的URL请求,协议为https--> <!--rest表示根据请求的方法,
SpringMVC:拦截器和过滤器的区别
SpringMVC:拦截器和过滤器的区别
125 0
SpringMVC:拦截器和过滤器的区别