关于SpringMVC自定义拦截器的一点问题

事情是这样的,我做了一个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>
原文地址:https://www.cnblogs.com/yiliangmi/p/15211858.html