我将 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?