首页 > 其他分享 >swagger2 + spring security(携带token) 相关配置

swagger2 + spring security(携带token) 相关配置

时间:2022-09-06 10:33:40浏览次数:53  
标签:spring documentation List swagger2 token new import springfox

本文配置 swagger2.9 的基本、携带token 相关配置

引入依赖

<!--swagger-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<!--swagger ui-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

添加类


import com.google.common.base.Predicates;
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.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.AuthorizationScope;
import springfox.documentation.service.SecurityReference;
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;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(true)
                .apiInfo(apiInfo())
                .select()
            // 这里配置不再 swagger-ui 上显示的接口
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .paths(Predicates.not(PathSelectors.regex("/actuator.*")))
            
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts());
    }

    private List<ApiKey> securitySchemes() {
        List<ApiKey> apiKeyList= new ArrayList<>();
        apiKeyList.add(new ApiKey("token", "token", "header"));
        return apiKeyList;
    }

    private List<SecurityContext> securityContexts() {
        List<SecurityContext> securityContexts=new ArrayList<>();
        securityContexts.add(
                SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .forPaths(PathSelectors.regex("^(?!auth).*$"))
                        .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;
    }

    /**
     * 构建 api文档的详细信息函数
     *
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Yhoss 的后端文档")
                .build();
    }
}

然后就可以用了,token 在页面右上角

标签:spring,documentation,List,swagger2,token,new,import,springfox
From: https://www.cnblogs.com/acdongla/p/16660869.html

相关文章

  • SpringMVC响应Ajax请求
    在分享今天的这个知识点之前先回顾一下使用ajax的目的:实现异步请求,客户端发送的请求携带数据到达服务器,服务器接收到请求后进行处理,然后返回处理后的数据。客户端接收到返......
  • springmvc框架1:第一个spring mvc项目
    SpringMVC简介:SpringMVc是基于Spring框架的基础上采用了WebMVC设计模式的一个轻量级web框架,也是目前最为流行的一个Web框架。SpringMVc框架具有如下一些特点:1.拥有......
  • 关于SpringMVC出现class path resource [SpringMVC.xml] cannot be opened because it
     ......
  • 面试突击80:说一下 Spring 中 Bean 的生命周期?
    Java中的公共类称之为Bean或JavaBean,而Spring中的Bean指的是将对象的生命周期,交个SpringIoC容器来管理的对象。所以Spring中的Bean对象在使用时,无需通过n......
  • 九、Spring Boot 静态资源访问配置
    使用场景:有一些文件需要让用户直接访问的静态资源,例如导入excel的模板或者小的图标当我们使用SpringMVC框架时,静态资源会被拦截,需要添加额外配置,springboot是帮我们处理......
  • 八、Spring Boot 实现一个自定义start
    http://springboot.javaboy.org/2019/0520/springboot-starterstarter的作用用来做依赖导入、自动配置Starter的核心就是条件注解@Conditional当classpath下存在......
  • Spring Boot集成Dubbo
    SpringBoot集成Dubbo分布式框架项目结构接口工程:存放实体bean和业务接口服务提供者:业务接口的实现类并将服务暴露且注册到注册中心,调用数据持久层添加依赖(dubbo、注册......
  • 八、Spring Boot 中自定义 SpringMVC 配置
    转发:https://www.javaboy.org/2019/0816/spring-boot-springmvc.html先说结论,使用Java8的,自定义配置使用实现WebMvcConfigurer接口,Java8之前使用WebMvcConfigurerAdapte......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构师SpringCloud-Gateway
    目录SpringCloudGateway的工作流程Gateway动态路由配置中基于Path的路由方式过滤器分类常见默认过滤器添加响应头前缀处理增加前缀自定义过滤器1、实现GatewayFilter接口2......
  • (Spring)文件上传和下载
    文件上传的时候,浏览器将图片以MultipartFile的形式传到服务器,服务器将保存完的图片名响应给浏览器。文件下载的时候,浏览器收到图片名,再向服务器请求图片资源,服务器以流的......