首页 > 其他分享 >springboot 集成swagger3.0 并开启权限认证

springboot 集成swagger3.0 并开启权限认证

时间:2023-11-23 18:34:01浏览次数:34  
标签:swagger return springboot DocumentationType swagger3.0 JWT private new 权限

1.POM文件只需要引入一个依赖即可

 

 

2. swagger配置文件如下

注意:要添加“@EnableWebMvc"注解,详细代码如下:

@Configuration
@EnableWebMvc
public class SwaggerConfig {
@Value("${swagger.enabled}")
boolean enabled;
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
// 是否开启swagger
.enable(enabled)
.select()
// 过滤条件,扫描指定路径下的文件
.apis(RequestHandlerSelectors.basePackage("com.bigdata.demo.controller"))
// 指定路径处理,PathSelectors.any()代表不过滤任何路径
.paths(PathSelectors.any())
.build()
.securitySchemes(Arrays.asList(apiKey()))
.securityContexts(Arrays.asList(securityContext()));

}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("数据中台demo接口文档")
.description("数据中台demo Restful APIs")
.version("1.0")
.build();
}
private ApiKey apiKey() {
return new ApiKey("JWT", "Authorization", "header");
}
/**
* 这里设置 swagger 认证的安全上下文
*/
private SecurityContext securityContext() {
return SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.any())
.build();
}
/**
* 这里是写允许认证的scope
*/
private List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Arrays.asList(new SecurityReference("JWT", authorizationScopes));
}

}

这里采用的规范是“DocumentationType.SWAGGER_2”而不是“DocumentationType.OAS_30”,“DocumentationType.OAS_30”有些问题, 采用“DocumentationType.OAS_30”,在发送请求的时候,token在header里边的key
并不是“ApiKey("JWT", "Authorization", "header");”里边设置的“Authorization”,而是变成了“JWT”,具体原因尚不清楚。 如下图所示:

 

采用“DocumentationType.SWAGGER_2”就没有上述问题,如下图所示:

 

标签:swagger,return,springboot,DocumentationType,swagger3.0,JWT,private,new,权限
From: https://www.cnblogs.com/andy1234/p/17852219.html

相关文章

  • Springboot文件上传代码笔记
    1.在src下创建filter包,包内Class名UploadFilterpackagecom.gd.filter;importorg.apache.catalina.servlet4preview.http.HttpServletRequest;importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjavax.servlet.http.HttpServletResponse;impor......
  • Springboot 自动发送邮件
      完成Springboot配置发件邮箱,自动给其他邮箱发送邮件功能一、创建springboot基础项目,引入依赖<!--SpringBoot邮件依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency&g......
  • 文件权限
    一、基本权限UGOU:owner,属主。G:group,属组。O:other,其他用户。r:read(读取),数字设定为4。w:write(写入),数字设定为2。x:execute(执行),数字设定为1。例如创建一个文件file1,使用ll查看文件属性信息。其中,owner的权限为“rw-”(读取与写入),数字可表示为4+2=6;group的权限为“r--”(读取),数字......
  • spring和springboot定时任务线程池配置
    spring和springboot定时任务线程池配置目录spring和springboot定时任务线程池配置1背景2配置2.1命名空间配置2.2yaml配置3参考文档1背景项目有几个新增的月末报表生成定时任务(使用spring内置的TaskScheduler),相关业务人员反馈报表没有及时生成,让我比较疑惑:虽然生成比较耗......
  • 权限管理
      1.文件访问者的分类文件和文件目录的所有者:u—User(中国平民法律问题),一般为文件的创建者,谁创建了该文件,就天然的成为该文件的拥有者。文件和文件目录的所有者所在的组的用户:g—Group,当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。其它用户:o—Others除开文......
  • java 实现文件夹上传(springBoot 框架)
    java实现文件夹上传(springBoot框架)有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上传到我们的服务器上,本人也是搜索了大量资料,最终以最简单便捷的方式实现该功能,具体操作步骤如下一、前端如何设置上传组件并将资源上传到后台服务这......
  • 使用jasypt对springboot配置信息加密
    1.pom文件增加依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency>2.修改启动......
  • 手把手教你玩转 SpringBoot 日志
    本文根据文章:https://lebron.blog.csdn.net/article/details/132953586?spm=1001.2014.3001.5502进行修改一、日志重要吗程序中的日志重要吗?在回答这个问题前,笔者先说个事例:笔者印象尤深的就是去年某个同事,收到了客户反馈的紧急bug。尽管申请到了日志文件,但因为很多关键步骤......
  • SQL SERVER数据库权限分配
    1,新建只能访问某一个表的只读用户。--添加只允许访问指定表的用户:     exec  sp_addlogin  '用户名','密码','默认数据库名'         --添加到数据库     exec  sp_grantdbaccess  '用户名'       --分配SELECT......
  • 基于java+springboot的酒店预定网站、酒店客房管理系统
    该系统是基于Java的酒店客房预订系统设计与实现。是给师弟开发的毕业设计。现将源代码开放出来,感兴趣的同学可以下载。演示地址前台地址:http://hotel.gitapp.cn后台地址:http://hotel.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123功能介绍平台采用B/S结构,后端采用主......