springfox-swagger2设置全局token避免每次输入

痞子三分冷 提交于 2020-02-27 01:16:44

Swagger API头信息传Authorization配置

@Bean  
public Docket createRestApi() {  
	//header token
    ParameterBuilder tokenPar = new ParameterBuilder();
    List<Parameter> pars = new ArrayList<>();
    tokenPar.name("Authorization").description("token").modelRef(new ModelRef("string"))
        .parameterType("header").required(false).build();
    pars.add(tokenPar.build());
  return new Docket(DocumentationType.SWAGGER_2)  
      .globalOperationParameters(pars)
      .genericModelSubstitutes(DeferredResult.class)  
      .useDefaultResponseMessages(false)  
      .forCodeGeneration(true)  
      .apiInfo(apiInfo())  
      .pathMapping("/")  
      .select()  
      .apis(RequestHandlerSelectors.basePackage("com.rivtower.beauta.api.resource")) //  
  .paths(PathSelectors.any())  
      .build(); 
}  
  
private ApiInfo apiInfo() {  
  return new ApiInfoBuilder()  
      .title("Swagger API Docs")  
      .description("SwaggerAPI")  
      .termsOfServiceUrl("https://github.com/springfox/springfox-demos")  
      .version("1.0")  
      .build();  
}

效果:

  • 缺点:每次调试接口,都要重新输入Authroization

设置全局token避免每次输入

@Bean  
public Docket createRestApi() {  
  return new Docket(DocumentationType.SWAGGER_2)  
      .genericModelSubstitutes(DeferredResult.class)  
      .useDefaultResponseMessages(false)  
      .forCodeGeneration(true)  
      .apiInfo(apiInfo())  
      .pathMapping("/")  
      .select()  
      .apis(RequestHandlerSelectors.basePackage("com.rivtower.beauta.api.resource")) //  
  .paths(PathSelectors.any())  
      .build()  
      .securitySchemes(securitySchemes())  
      .securityContexts(securityContexts());  
}  
  
private ApiInfo apiInfo() {  
  return new ApiInfoBuilder()  
      .title("Swagger API Docs")  
      .description("SwaggerAPI")  
      .termsOfServiceUrl("https://github.com/springfox/springfox-demos")  
      .version("2.0")  
      .build();  
}  
  
private List<ApiKey> securitySchemes() {  
  return Arrays.asList(  
      new ApiKey("Authorization", "Authorization", "header"));  
}  
  
private List<SecurityContext> securityContexts() {  
  return Arrays.asList(  
      SecurityContext.builder()  
          .securityReferences(defaultAuth())  
          .forPaths(PathSelectors.regex("^(?!auth).*$"))  
          .build()  
  );  
}  
  
List<SecurityReference> defaultAuth() {  
  AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");  
  AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];  
  authorizationScopes[0] = authorizationScope;  
 return Arrays.asList(  
      new SecurityReference("Authorization", authorizationScopes));  
}

效果:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!