【发布时间】:2014-01-04 18:21:00
【问题描述】:
我将 Apache Shiro 与 Spring 一起使用,并且仅使用 Spring 的 Java 配置。 (没有 xml)。 下面是我的配置类的一部分:
@Configuration
public class AppConfig {
@Bean
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
return new LifecycleBeanPostProcessor();
}
@Bean
public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
factoryBean.setSecurityManager(securityManager);
String shiroIniContents = readFile(new ClassPathResource("shiro.ini").getFile().toPath());
factoryBean.setFilterChainDefinitions(shiroIniContents);//only reads the [urls] section
factoryBean.setLoginUrl("/rest/login");
return factoryBean;
}
@Bean
public DefaultWebSecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(stormpathRealm());
return securityManager;
}
}
如您所见,我正在尝试通过将shiro.ini 传递给ShiroFilterFactoryBean.setFilterChainDefinitions() 来加载它。
但该方法只加载[urls] 部分的内容。因此,[main] 部分中的任何内容都保持不变。
那么,如何/在哪里使用 shiro.ini 的完整内容配置 shiro?
【问题讨论】:
-
看看here。您应该尝试将所有内容重构为 Java 配置,而不是使用
.ini文件。
标签: java spring security shiro spring-java-config