public class FilterChainDefinitionMapBuilder {
public LinkedHashMap<String,String> buildFilterChainDefinitionMap(){
LinkedHashMap<String,String> lHMap=new LinkedHashMap<>();
lHMap.put("/login.jsp", "anon");
lHMap.put("/shiro/login", "anon");
lHMap.put("/shiro/logout", "logout");
lHMap.put("/user.jsp", "roles[user]");
lHMap.put("/admin.jsp", "roles[admin]");
lHMap.put("/**","authc");
return lHMap;
}
}
<!-- 配置一个 bean,该 bean 实际上是一个 Map 通过实例工厂方法的方式 -->
<bean id="filterChainDefinitionBuilder"
class="org.lfz.shiro.factory.FilterChainDefinitionMapBuilder"></bean>
<bean id="filterChainDefinitionMap"
factory-bean="filterChainDefinitionBuilder"
factory-method="buildFilterChainDefinitionMap"></bean>
在shiroFilter的bean中配置
<property name="filterChainDefinitionMap" ref="filterChainDefinitionMap"></property>