@Bean("shiroFilter")
public ShiroFilterFactoryBean factory(DefaultWebSecurityManager securityManager) {
ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
// 添加自己的过滤器并且取名为jwt
Map<String, Filter> filterMap = new HashMap<>();
filterMap.put("jwt", new JWTFilter());
factoryBean.setFilters(filterMap);
factoryBean.setSecurityManager(securityManager);
/*
* 自定义url规则
* http://shiro.apache.org/web.html#urls-
*/
Map<String, String> filterRuleMap = new HashMap<>();
filterRuleMap.put("/user/druid/**", "anon");
//放行webSocket
filterRuleMap.put("/user/websocket/*", "anon");
//放行swagger
filterRuleMap.put("/user/v2/api-docs", "anon");
filterRuleMap.put("/user/swagger-resources", "anon");
filterRuleMap.put("/user/swagger-resources/**", "anon");
filterRuleMap.put("/user/swagger-ui.html/**", "anon");
// 所有请求通过我们自己的JWT Filter
filterRuleMap.put("/**", "jwt");
factoryBean.setFilterChainDefinitionMap(filterRuleMap);
return factoryBean;
}anon过滤不生效,把 Map<String, String> filterRuleMap = new HashMap<>();
修改为Map<String, String> filterRuleMap = new LinkedHashMap<>();
版权声明:本文为u014594604原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。