事情是这样的,我做了一个token拦截器,然后想在swagger上测试,结果发现配置swagger资源不被拦截后并没有生效,请求swagger页面时,仍然跳转到自定义的拦截器中,配置如下图所示:
附上一个拦截器的配置方式:防止SpringMVC拦截器拦截js等静态资源文件
最后发现是因为swagger-ui.html的路径没有配好。。。
总结一下:
1、对于自定义拦截器,又会拦截所有请求 ,放行的静态资源一定要配置在自定义拦截器中(如下代码所示)。
2、对于放行的文件一定要配置正确。
<!--自定义拦截器--> <mvc:interceptors> <!-- 验证是否登录 通过cookie --> <mvc:interceptor> <!-- 拦截所有mvc控制器 --> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/login/**"/> <mvc:exclude-mapping path="/resources/**"/><!-- swagger静态资源--> <mvc:exclude-mapping path="/v2/**"/><!-- swagger静态资源--> <mvc:exclude-mapping path="/swagger-ui.html#!/**"/><!-- swagger静态资源--> <mvc:exclude-mapping path="/swagger-ui.html"/><!-- swagger静态资源--> <mvc:exclude-mapping path="/swagger-resources/**"/><!-- swagger静态资源--> <mvc:exclude-mapping path="/webjars/**"/><!-- swagger-js资源--> <bean class="com.yiliangmi.interceptor.TokenInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>