62 lines
2.4 KiB
Java
62 lines
2.4 KiB
Java
|
|
package com.zhangmeng.api.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.*;
|
||
|
|
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 zhangmeng
|
||
|
|
* @version 1.0
|
||
|
|
* @date 2021年7月8日09:12:01
|
||
|
|
*/
|
||
|
|
@EnableSwagger2
|
||
|
|
@Configuration
|
||
|
|
public class SwaggerConfig {
|
||
|
|
|
||
|
|
@Bean
|
||
|
|
public Docket docket() {
|
||
|
|
return new Docket(DocumentationType.SWAGGER_2).groupName("swagger接口文档")
|
||
|
|
.apiInfo(new ApiInfoBuilder().title("swagger接口文档")
|
||
|
|
.contact(new Contact("转身的背影在心底里沉沦", "", "1334717033.com")).version("1.0").build())
|
||
|
|
.securitySchemes(securitySchemes())
|
||
|
|
.securityContexts(securityContexts())
|
||
|
|
.select()
|
||
|
|
.apis(RequestHandlerSelectors.basePackage("com.zhangmeng"))
|
||
|
|
.paths(PathSelectors.any()).build();
|
||
|
|
}
|
||
|
|
|
||
|
|
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;
|
||
|
|
}
|
||
|
|
}
|