解决No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.Threa

朱雀 2023-01-21 02:29 54阅读 0赞

配置中需要加入

Filter工厂,设置对应的过滤条件和跳转条件

  1. @Bean
  2. public ShiroFilterFactoryBean shiroFilterFactoryBean(org.apache.shiro.mgt.SecurityManager securityManager) {
  3. ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  4. shiroFilterFactoryBean.setSecurityManager(securityManager);
  5. // 登录
  6. shiroFilterFactoryBean.setLoginUrl("/hello/usr");
  7. return shiroFilterFactoryBean;
  8. }
  9. /**
  10. * 随着springboot启动就启动
  11. * @return
  12. */
  13. @Bean
  14. public MyRealm myAuthRealm(){
  15. MyRealm myRealm = new MyRealm();
  16. System.out.println("自定义realm完成");
  17. return myRealm;
  18. }
  19. /**
  20. * 随着springboot启动就启动,安全管理器无需编写,交个spring管理
  21. * @return
  22. */
  23. @Bean(name = "securityManager")
  24. public DefaultWebSecurityManager securityManager(){
  25. DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
  26. securityManager.setRealm(myAuthRealm());
  27. System.out.println("安全管理器注册完成");
  28. return securityManager;
  29. }

这样自定义realm和安全管理器会被springboot一个链式管理
控制台打印也是先打印自定义realm完成
后打印出安全管理器注册完成,
不会随着springboot启动直接两句话同时打印,而是链式管理

发表评论

表情:
评论列表 (有 0 条评论,54人围观)

还没有评论,来说两句吧...

相关阅读