再配置shiro的時候,如下代碼要注意:
1、下述代碼中必須是LinkedHashMap 而不能是HashMap。
2、anon定義必須在authc之前
否則anon定義不生效
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager){
ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
factoryBean.setSecurityManager(securityManager);
// 設置登錄跳轉
factoryBean.setLoginUrl("/admin");
factoryBean.setSuccessUrl("/admin/index");
//必須為LinkedHashMap 否則anon不生效
Map<String,String> map = new LinkedHashMap<>();
//退出
map.put("/admin/logout","logout");
//登錄頁面和登錄驗證不要攔截
map.put("/admin/login.html","anon");
map.put("/admin/tologin","anon");
//設置需要過濾的鏈接
map.put("/admin/**","authc");
factoryBean.setFilterChainDefinitionMap(map);
return factoryBean;
}
