springboot add request header (swagger token authentication)
Application: Add a global token to avoid the need to carry a token access interface every time
*********************************
Examples
*********************
config layer
Swagger2Config
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket initDocket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(initApiInfo())
.securitySchemes(securitySchemes())
.securityContexts(securityContexts())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.regex("^(?!auth).*$"))
.build();
}
private ApiInfo initApiInfo(){
return new ApiInfoBuilder()
.title("构建 swagger2")
.description("接口测试")
.termsOfServiceUrl("http://www.baidu.com")
.version("v1.0")
.build();
}
public List<ApiKey> securitySchemes(){
List<ApiKey> apiKeys=new ArrayList<>();
apiKeys.add(new ApiKey("oauth2 认证","Authorization","header"));
return apiKeys;
}
public List<SecurityContext> securityContexts(){
List<SecurityContext> securityContexts=new ArrayList<>();
securityContexts.add(SecurityContext.builder()
.securityReferences(securityReferences())
.forPaths(PathSelectors.any()).build());
return securityContexts;
}
public List<SecurityReference> securityReferences(){
AuthorizationScope[] authorizationScopes=new AuthorizationScope[1];
authorizationScopes[0]=new AuthorizationScope("global","accessEverything");
List<SecurityReference> securityReferences=new ArrayList<>();
securityReferences.add(new SecurityReference("Authorization",authorizationScopes));
return securityReferences;
}
}
*************************
Use test
http://localhost:8080/swagger-ui.html
Note: When using oauth2 authentication, enter the bearer token value in the value to test the interface