Spring で Apache Shiro を使用し、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 を構成するにはどうすればよいでしょうか。