首页 > 其他分享 >SpringBoot配置swagger

SpringBoot配置swagger

时间:2022-11-03 14:36:33浏览次数:64  
标签:securityContexts swagger SpringBoot 配置 List new import springfox documentation

1、引入依赖

  

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>

<!-- Swagger3依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
  

 

2、配置文件

package com.casaba.provider.config;

import io.swagger.models.auth.In;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;

/**
 * @author junHong
 * @date 2022/11/2
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.OAS_30)
                .enable(true)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.casaba.provider.controller"))
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts())
                .pathMapping("/");
    }
    /**
     * 安全模式,这里指定token通过请求头传递
     */
    private List<SecurityScheme> securitySchemes()
    {
        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
        apiKeyList.add(new ApiKey("token", "token", In.HEADER.toValue()));
        return apiKeyList;
    }

    /**
     * 安全上下文
     */
    private List<SecurityContext> securityContexts()
    {
        List<SecurityContext> securityContexts = new ArrayList<>();
        securityContexts.add(
                SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
                        .build());
        return securityContexts;
    }

    /**
     * 默认的安全上引用
     */
    private List<SecurityReference> defaultAuth()
    {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        List<SecurityReference> securityReferences = new ArrayList<>();
        securityReferences.add(new SecurityReference("token", authorizationScopes));
        return securityReferences;
    }

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("swagger 测试")
                .version("1.0.0")
                .description(" api------")
                .build();
    }
}

 

3、启动springBoot项目,请求http://localhost:8001/swagger-ui/index.html#/

  

 

标签:securityContexts,swagger,SpringBoot,配置,List,new,import,springfox,documentation
From: https://www.cnblogs.com/junnnnnnnn/p/16854353.html

相关文章

  • flink cdc - mysql binlog配置
    binglog简介binlog是二进制日志,并且是事务安全性binlog记录了所有的DDL和DML(除了数据查问语句)语句应用场景监听配置流,广播配置捕获mysql变更的数据流mysqlbin......
  • [Maven基础]-- maven的setting.xml配置国内常用静态源
    <?xmlversion="1.0"encoding="UTF-8"?><settingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • AIRIOT物联网低代码平台如何配置OPC UA驱动?
    AIRIOT物联网低代码平台支持驱动类型丰富,驱动包括但不限于通用驱动信息,无线驱动信息,行业驱动信息及各个厂商驱动。驱动稳定性强,经受住各个大型项目考验,持续稳定运行。A......
  • SpringBoot日志乱码问题
    其中一种原因:java源码文件中有GBK、UTF-8两种不同的编码,导致IDEA在编译文件时使用GBK编码编译,这样源码UTF-8中写入的中文字符就会编码错误,变为乱码。IDEA提示如下时需要......
  • shell结合expect 脚本自动备份华为交换机配置文件
    最近看了点expect的知识点,就产生了个利用它来自动备份交换机配置的想法。于是就做了下尝试。来看看如何实现。Expect是一个用来实现自动交互功能的软件套件,是基于TCL的脚......
  • idea插件Tranlation配置有道搜索引擎
    idea配置有道翻译引擎一、更换翻译引擎原因由于Google在2022年9月末宣布关闭GoogleTranslate在中国的服务,原本在chrome浏览器和idea上使用的google翻译引擎也不能正常使......
  • wxjava 多商户 微信支付在springBoot项目中使用以及血泪教训
    最近在做自助洗车项目中,因每个门店需要使用自己的商户收款,所以需要wxjava多商户支持,在百度查了些资料,基本都是单个商户的使用案例,遂把项目中的一些总结分享。先介绍下单......
  • zk系列二:zookeeper实战之分布式统一配置获取
    前面介绍了zk的一些基础知识,这篇文章主要介绍下如何在java环境下获取zk的配置信息;主要基于zk的监听器以及回调函数通过响应式编程的思想将核心代码糅合成一个工具类,几乎做......
  • .net 温故知新:【8】.NET 中的配置从xml转向json
    一、配置概述在.netframework平台中我们常见的也是最熟悉的就是.config文件作为配置,控制台桌面程序是App.config,Web就是web.config,里面的配置格式为xml格式。在xml里面......
  • 记一次 Druid 超时配置的问题 → 引发对 Druid 时间配置项的探究
    开心一刻一天在路边看到一个街头采访记者:请问,假如你儿子娶媳妇,给多少彩礼合适呢大爷:一百万吧,再给一套房,一辆车大爷沉思一下,继续说到:如果有能力的话再给老丈......