事情是这样的,我做了一个token拦截器,然后想在swagger上测试,结果发现配置swagger资源不被拦截后并没有生效,请求swagger页面时,仍然跳转到自定义的拦截器中,配置如下图所示:

 

最后发现是因为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>