记录在Shiro中setFilterChainDefinitionMap拦截不成功的问题:
@Bean
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
bean.setSecurityManager(defaultWebSecurityManager);
Map<String,String> map = new LinkedHashMap<>();
map.put("user/toboss","authc");
map.put("user/toliu","authc");
bean.setFilterChainDefinitionMap(map);
Shiro中setFilterChainDefinitionMap拦截不成功研究了半天,才发现map中url的抒写格式有硬性要求。url格式除了要和Controller的url相同,还必须在url开头加个/才能拦截成功,完整格式必须为
- /****(要拦截的url路径,如若开头有可忽略)
改进后:
@Bean
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
bean.setSecurityManager(defaultWebSecurityManager);
Map<String,String> map = new LinkedHashMap<>();
map.put("/user/toboss","authc");
map.put("/user/toliu","authc");
bean.setFilterChainDefinitionMap(map);