解决No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.Threa
配置中需要加入
Filter工厂,设置对应的过滤条件和跳转条件
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(org.apache.shiro.mgt.SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
// 登录
shiroFilterFactoryBean.setLoginUrl("/hello/usr");
return shiroFilterFactoryBean;
}
/**
* 随着springboot启动就启动
* @return
*/
@Bean
public MyRealm myAuthRealm(){
MyRealm myRealm = new MyRealm();
System.out.println("自定义realm完成");
return myRealm;
}
/**
* 随着springboot启动就启动,安全管理器无需编写,交个spring管理
* @return
*/
@Bean(name = "securityManager")
public DefaultWebSecurityManager securityManager(){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(myAuthRealm());
System.out.println("安全管理器注册完成");
return securityManager;
}
这样自定义realm和安全管理器会被springboot一个链式管理
控制台打印也是先打印自定义realm完成
后打印出安全管理器注册完成,
不会随着springboot启动直接两句话同时打印,而是链式管理
还没有评论,来说两句吧...