小编Dan*_*han的帖子

如何使用Spring Boot配置Shiro

我有一个Spring MVC Web应用程序,它使用Spring配置而不是shiro.ini来使用Shiro身份验证.

我想转换到Spring Boot应用程序.

我一直很成功.应用程序在Spring Boot中启动,我的Shiro环境得到设置.但是,我无法弄清楚如何正确设置Shiro过滤器.我需要这个来确保请求最终由正确的线程处理.

在原始应用程序中,我在web.xml中配置了Shiro Filter,如下所示:

<filter>
    <filter-name>shiroFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <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>
Run Code Online (Sandbox Code Playgroud)

我试过使用这样的Java Config复制它:

  @Autowired
  private WebSecurityManager webSecurityManager;

  @Bean
  public ShiroFilterFactoryBean shiroFilterFactoryBean() {
    ShiroFilterFactoryBean shiroFilterFactoryBean = new org.apache.shiro.spring.web.ShiroFilterFactoryBean();
    shiroFilterFactoryBean.setSecurityManager(webSecurityManager);
    return shiroFilterFactoryBean;
  }

  @Bean
  public org.apache.shiro.spring.LifecycleBeanPostProcessor lifecycleBeanPostProcessor()
  {
    return new org.apache.shiro.spring.LifecycleBeanPostProcessor();
  }

  @Bean
  public Filter shiroFilter()
  {
    DelegatingFilterProxy filter = new DelegatingFilterProxy();
    filter.setTargetBeanName("shiroFilterFactoryBean");
    filter.setTargetFilterLifecycle(true);
    return filter;
  }
Run Code Online (Sandbox Code Playgroud)

然而,我只是无法将所有东西放在一起,而且没有足够的知识来解决它.我只是看不到将过滤器连接到环境.我猜这与订单设置有关.

有没有人设法成功使用Spring Boot和Shiro?

spring-mvc shiro spring-boot

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

shiro ×1

spring-boot ×1

spring-mvc ×1