最近在整合shiro,想把URL和权限什么的提取出来放在yml里,但是yml中的map数据却读取不到。。。
@Configuration
@Component
@ConfigurationProperties(prefix="shiroConfig")
public class ShiroConfig {
@Value("shiroConfig.filterChainDefinitionMap")
private Map filterChainDefinitionMap = new LinkedHashMap();
public Map getFilterChainDefinitionMap() {
return filterChainDefinitionMap;
}
public void setFilterChainDefinitionMap(Map filterChainDefinitionMap) {
this.filterChainDefinitionMap = filterChainDefinitionMap;
}
@Bean
@Autowired
public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultWebSecurityManager securityManager, View view,ShiroConfig shiroConfig){
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
// 设置安全管理器
shiroFilterFactoryBean.setSecurityManager(securityManager);
//设置登录的页面,发送toLogin请求
shiroFilterFactoryBean.setLoginUrl(view.getLogin());
//设置未授权的页面
shiroFilterFactoryBean.setUnauthorizedUrl(view.getUnauthorized());
//设置过滤器
shiroFilterFactoryBean.setFilterChainDefinitionMap(shiroConfig.getFilterChainDefinitionMap());
return shiroFilterFactoryBean;
}
yml文件
shiroConfig:
filterChainDefinitionMap:
/testThymeleaf: anon
/login: anon
/add: perms[user:add]
/update: perms[user:update]
/*: authc