首页 > 其他分享 >springboot加入拦截器后swagger无法访问

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

时间:2023-01-08 17:33:08浏览次数:64  
标签:拦截器 excludePathPatterns 无法访问 html registry 拦截 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

标签:拦截器,excludePathPatterns,无法访问,html,registry,拦截,swagger
From: https://www.cnblogs.com/zdrcgubjo/p/17034852.html

相关文章