【发布时间】:2014-07-26 23:52:56
【问题描述】:
我的项目目前使用 Apache Shiro 进行保护,并且希望添加 Shiro 注释以获得更简洁的源代码。
Apache Shiro 要求您包含 DefaultAdvisorAutoProxyCreator 以便 Spring AOP 检测到它。
我的配置如下:
@Configuration
@ComponentScan("com.mcac0006.flip")
@EnableWebMvc
public class AppContextConfiguration {
@Autowired
private JdbcRealm shiroRealm;
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean getShiroFilter() {
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
bean.setSecurityManager(getSecurityManager());
return bean;
}
@Bean(name="securityManager")
public DefaultSecurityManager getSecurityManager() {
return new DefaultWebSecurityManager(shiroRealm);
}
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor() {
AuthorizationAttributeSourceAdvisor a = new AuthorizationAttributeSourceAdvisor();
a.setSecurityManager(getSecurityManager());
return a;
}
@Bean
@DependsOn("authorizationAttributeSourceAdvisor")
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
final DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
return defaultAdvisorAutoProxyCreator;
}
}
在此示例中,shiroRealm 保持为空,并导致其所有依赖项都失败。如果我注释掉最后一个方法defaultAdvisorAutoProxyCreator(),shiroRealm 实例化就好了。
我忽略了什么??
谢谢大家。
【问题讨论】:
标签: java spring spring-mvc spring-aop shiro