Spring security 如何开放 Swagger 访问权限

网友投稿 1472 2022-12-11

Spring security 如何开放 Swagger 访问权限

Spring security 如何开放 Swagger 访问权限

目录Spring security 开放 Swagger 访问权限开放这四个目录spring boot 加入-后swagger不能访问原因分析网上找的资料中大部分只说添加这个或者只添加

Spring security 开放 Swagger 访问权限

开放这四个目录

搞定

.antMatchers("/swagger-ui.html").permitAll()

.antMatchers("/webjars/**").permitAll()

.antMatchers("/v2/**").permitAll()

.antMatchers("/swagger-resources/**").permitAll()

spring boot 加入-后swagger不能访问

spring boot 加入-后swagger不能访问问题

未加入-时,swagger可以正常访问接口信息,但是加入-之后swagger就不能访问了

原因分析

不能访问的原因的swagger的内置接口被-拦下来了

图片中可以看到swagger的所有请求的url信息,只要把他们加到-的排除列表中即可

package com.trimps928.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**

* @author liubing

* @version 2018-06-26

* -配置

**/

@Configuration

public class MyWebAppConfig extends WebMvcConfigurationSupport {

@Bean

LoginInterceptor localInterceptor() {

return new LoginInterceptor();

}

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(localInterceptor())

.addPathPatterns("/**")

.excludePathPatterns("/user/login")

.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");

}

@Override

protected void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("swagger-ui.html")

.addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");

}

}

网上找的资料中大部分只说添加这个

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(localInterceptor())

.addPathPatterns("/**")

.excludePathPatterns("/user/login")

.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");

}

或者只添加

@Override

protected void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("swagger-ui.html")

.addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");

}

无数次的实验发现这两个方法都需要重写,只加任何一个都无法生效。

以上为个人经验,希望能给大家一个参考,也希望大家多多yNeslQEJe支持我们。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot整合mail实现邮箱的发送功能
下一篇:SpringBoot @FixMethodOrder 如何调整单元测试顺序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~