springboot加入拦截器后swagger无法访问

由于需要对用户权限进行认证,判断登录与否,然后设置了全局拦截器,然后测接口的额时候swagger也被拦截了(QAQ)

拦截器不配置拦截路径时可以访问,配置后出现以下情况


两种访问形式都被拦截

解决方式:

点击查看代码

// springmvc配置文件
@Configuration
public class aaa implements WebMvcConfigurer {
    @Resource
    private CrossOriginInterceptor crossOriginInterceptor;
    @Resource
    private AuthInterceptor authInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册自己的拦截器,并设置拦截的请求路径
        //addPathPatterns为拦截此请求路径的请求
        //excludePathPatterns为不拦截此路径的请求
        registry.addInterceptor(crossOriginInterceptor)
                .addPathPatterns("/**");

        registry.addInterceptor(authInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns("/login")
                .excludePathPatterns("/fileControl/*")
                //放行swagger相关资源
                .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");
    }

    /**
     * 设置静态资源以及目录
       下面这个配置其实没加并不影响使用,应该是作用于单体项目需要访问classpath下的静态资源时需要配置的映射路径
       本文中的demo使用的是分离式,对于这个似乎不会有什么影响
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("doc.html")
//                .addResourceLocations("classpath:/META-INF/resources/");
//        registry.addResourceHandler("swagger-ui.html")
//                .addResourceLocations("classpath:/META-INF/resources/");
//        registry.addResourceHandler("/webjars/**")
//                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

localhost:8088/swagger-ui.html可以正常显示

而另一个使用了bootstrapUI的打开方式仍然访问受限

在排除路径中加入doc.html即可访问

registry.addInterceptor(authInterceptor)
        .excludePathPatterns("/doc.html/**")

然后就有另一个问题了
登录一切正常

测试其他接口时发现被拦截了!


解决方法目前只能先放行对应的接口....

.excludePathPatterns("/music/**")
.excludePathPatterns("/type/**")

解释参考至https://blog.csdn.net/Sophia_0331/article/details/105835465

posted @   zdrcgubjo  阅读(544)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示