问题现象:
在把/swagger-ui.html,赋值为anno的权限后,依然出现页面空白,调试分析是因为css和js没有加载进来
因此可以推断拦截器拦截了
"/swagger-resources"
"/v2/api-docs"
几个包的资源,修改shiro可以匿名访问后,发现有一些样式仍不能加载:
发现"/webjars/springfox-swagger-ui/**"样式也被拦截了,
最终可以完美运行的代码如下:
// SWAGGER2过滤【START】 filterChainDefinitionMap.put("/swagger-ui.html", "anon"); filterChainDefinitionMap.put("/swagger-resources", "anon"); filterChainDefinitionMap.put("/swagger-resources/**", "anon"); filterChainDefinitionMap.put("/v2/api-docs", "anon"); filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon"); // SWAGGER2过滤【END】
Shiro配置URL过滤
常用过滤器:
- anon 不需要认证
- authc 需要认证
- user 验证通过或RememberMe登录的都可以
URL说明:
- /admin?=authc 表示可以请求以admin开头的字符串,如xxx/adminfefe,但无法匹配多个,即xxx/admindf/admin是不行的
- /admin*=authc 表示可以匹配零个或者多个字符,如/admin,/admin1,/admin123,但是不能匹配/admin/abc这种
- /admin/**=authc 表示可以匹配零个或者多个路径,如/admin,/admin/ad/adfdf等
注意:
/login=anon 不会对http://localhost:8080/login/起效果
/login=anon 和 /login=anon/ 不一样