Spring Boot整合shiro,出现UnavailableSecurityManagerException 异常

匿名 (未验证) 提交于 2019-12-03 00:37:01

问题描述:

由于在java过滤器中通过User token = (User) SecurityUtils.getSubject().getPrincipal();获取当前的登录用户的信息,报UnavailableSecurityManagerException这个异常。

spring整合shiro出现UnavailableSecurityManagerException在网上查出的问题都是没有配置DelegatingFilterProxy或者DelegatingFilterProxy的配置顺序错了,对应的解决办法就是在web.xml上添加DelegatingFilterProxy。

<filter>     <filter-name>shiroFilter</filter-name>     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>     <async-supported>true</async-supported>     <init-param>              <param-name>targetFilterLifecycle</param-name>              <param-value>true</param-value>      </init-param> </filter> <filter-mapping>     <filter-name>shiroFilter</filter-name>     <url-pattern>/*</url-pattern>  </filter-mapping>  

现在是spring boot框架里没有web.xml,所以解决起来直接写代码就可以了

@Configuration public class ShiroConfiguration { @Bean public FilterRegistrationBean delegatingFilterProxy(){     FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();     DelegatingFilterProxy proxy = new DelegatingFilterProxy();     proxy.setTargetFilterLifecycle(true);     proxy.setTargetBeanName("shiroFilter");     filterRegistrationBean.setFilter(proxy);     return filterRegistrationBean; }  @Bean("shiroFilter") public ShiroFilterFactoryBean shiroFilterFactoryBean() {     ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();     .......     return filterFactoryBean; } } 










易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!