我正在使用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;
}
}
如您所见,我正在尝试通过将其传递给 ShiroFilterFactoryBean.setFilterChainDefinitions()
来加载 shiro.ini
。但是该方法仅加载 [urls]
部分的内容。因此, [main]
部分中的任何内容都不受影响。
那么,我应该在哪里使用完整的 shiro.ini
配置shiro呢?
.ini
文件。 - Sotirios Delimanolis