我有一个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?