swagger授权测试

Swagger授权测试

 

导入pom包

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

 

Swagger 的配置文件

package com.spboot.tx.config;

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.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 static com.google.common.collect.Lists.newArrayList;

import java.util.List;


/**
* api 接口定义访问路径,可以在系统上查看
*/
@Configuration
@EnableSwagger2
public class Swagger2Configuration {
   //api接口包扫描路径
   public static final String SWAGGER_SCAN_BASE_PACKAGE = "com.spboot.tx.controller";
   public static final String VERSION = "1.0.0";


   //链式编程
   @Bean
   public Docket createRestApi() {
       return new Docket(DocumentationType.SWAGGER_2)

              .apiInfo(apiInfo())
              .select()
              .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))
              .paths(PathSelectors.any()) // 可以根据url路径设置哪些请求加入文档,忽略哪些请求
              .build()
              .securitySchemes(securitySchemes())
              .securityContexts(securityContexts());
  }

   //启动swagger的认证 输入Bearer token
   private List<ApiKey> securitySchemes() {
       return newArrayList(
               new ApiKey("Authorization","Authorization","header"));
  }
   private List<SecurityContext> securityContexts() {
       return newArrayList(
               SecurityContext.builder()
                      .securityReferences(defaultAuth())
                      .forPaths(PathSelectors.any())
                      .build()
      );
  }

   List<SecurityReference> defaultAuth() {
       AuthorizationScope authorizationScope = new AuthorizationScope("global","accessEverything");
       AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
       authorizationScopes[0] = authorizationScope;
       return newArrayList(
               new SecurityReference("Authorization",authorizationScopes));
  }

   private ApiInfo apiInfo() {
       return new ApiInfoBuilder()
              .title("系统API接口文档") //设置文档的标题
              .description("API 接口文档") // 设置文档的描述
              .version(VERSION) // 设置文档的版本信息-> 1.0.0 Version information
              .termsOfServiceUrl("http://www.baidu.com") // 设置文档的License信息->1.3 License information
              .build();
  }


}

此时访问swagger的首页http://localhost:8088/swagger-ui.html就会出现授权图标

 

 

然后重新访问Swagger的首页,切记!!!

之后找到你的token输入,就授权成功了。

如何找token

登录系统,鼠标右击->检查->Network,然后再随便点击一个请求数据到后台请求API的链接

 

 

 

posted @   阳光真好的博客  阅读(467)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示