最近整理项目时,发现原本可以正常访问swagger2是,突然无法访问了,提示如下:
,然后最开始以为是可能swagger2的一些路由被shiro的资源拦截器拦截了,然后就查看浏览器访问路由情况,发现被拦截的路由,shiro的拦截器都已经放开了
//放行Swagger2页面
filterChainDefinitionMap.put("/swagger-ui.html","anon");
filterChainDefinitionMap.put("/swagger/**","anon");
filterChainDefinitionMap.put("/webjars/**", "anon");
filterChainDefinitionMap.put("/swagger-resources/**","anon");
filterChainDefinitionMap.put("/v2/**","anon");
filterChainDefinitionMap.put("/static/**", "anon");
最后查看日志是时候发现并不是因为shiro或者swagger2的原因,原来是因为增加的自定义返回处理器ResponseBodyAdvice导致了拦截了swagger2的返回信息导致:
处理方法就是在此处将swagger2的返回信息不做处理,直接放回即可