再配置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; }