Shiro报错
1、报错详情
org.apache.shiro.UnavailableSecurityManagerException: 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.
at org.apache.shiro.SecurityUtils.getSecurityManager(SecurityUtils.java:123)
at org.apache.shiro.subject.Subject$Builder.<init>(Subject.java:627)
at org.apache.shiro.SecurityUtils.getSubject(SecurityUtils.java:56)
2、报错场景
Struts2+Spring+Hibernate整合Shiro框架报错。
报错位置为UserAction类的login方法中的Subject subject = SecurityUtils.getSubject();
。
3、解决办法
①、检查是否配置SecurityManager
SecurityManager配置方式有两种,一种是在spring的xml配置文件中声明。
另外一种是编写Shiro配置类,使用注解进行申明
@Configuration
public class ShiroConfig {
@Bean
public ShiroFilterFactoryBean getBean(@Qualifier("securityManager") DefaultWebSecurityManager securityManager)