java使用 starter 的方式在 SpringBoot 中整合 Shiro

Posted 莫问今朝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用 starter 的方式在 SpringBoot 中整合 Shiro相关的知识,希望对你有一定的参考价值。

一开始跟着官方文档走, 就不吐槽官方文档使用的先进版本 1.5.0-SNAPSHOT 在 maven 仓库里压根就不存在这事了。我用的事 maven 里最新的版本。 SpringBoot用的是 2.2.2-release

 <dependency>
      <groupId>org.apache.shiro</groupId>
     <artifactId>shiro-spring-boot-starter</artifactId>
     <version>1.4.2</version>
</dependency>

 

官方文档:Integrating Apache Shiro into Spring-Boot Applications

跟着官方文档走完,自定义一个Realm 之后跑起来,遇到个憨憨的报错 No SecurityManager to calling xxxxxxx, 根据报错信息就是没有 SecurityManager 呗, 于是我就 @Bean 注入了一个 SecurityManager。结果提示是有一个 SecurityManager 了。 当时我就

 

折腾了很多,最后还是得用非starter的注入方式, 在官方文档的基础上注入下面两个 Bean 就跑起来了

    @Bean
    public DefaultWebSecurityManager securityManager() {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRealm(realm());
        return securityManager;
    }

    @Bean(name = "shiroFilter")
    public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(securityManager);
        return shiroFilterFactoryBean;
    }

以上是关于java使用 starter 的方式在 SpringBoot 中整合 Shiro的主要内容,如果未能解决你的问题,请参考以下文章

cas完全是sprin框架写的么

java使用 starter 的方式在 SpringBoot 中整合 Shiro

SpringBoot系列之starter原理

springboot之自定义starter

springboot 中使用thymeleaf

图文并茂,Spring Boot Starter 万字详解!还有谁不会?