package com.rf.kjb.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; import java.util.ArrayList; import java.util.List; /** * Description: Swagger3+knife4j Config * * @author: zzf * @date: 2022-07-28 */ @Configuration @EnableOpenApi public class Swagger3Config { @Value("${swagger.enabled}") Boolean swaggerEnabled; @Bean public Docket docket() { return new Docket(DocumentationType.OAS_30) .apiInfo(apiInfo()) // 是否开启swagger .enable(swaggerEnabled) .select() // 过滤条件,扫描指定路径下的文件 .apis(RequestHandlerSelectors.basePackage("com.rf.kjb")) // 指定路径处理,PathSelectors.any()代表不过滤任何路径 //.paths(PathSelectors.any()) .build() .securitySchemes(securitySchemes()) .securityContexts(tokenContext()); } private List tokenContext() { List list = new ArrayList<>(); list.add(SecurityContext.builder() .securityReferences(securityReferences()) .operationSelector(o -> o.requestMappingPattern().matches("/.*")) .build()); return list; } public List securityReferences(){ List list = new ArrayList<>(); list.add( SecurityReference.builder() .scopes(new AuthorizationScope[0]) .reference("Authorization") .build()); return list; } private List securitySchemes() { List list = new ArrayList<>(); list.add(HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("Authorization").build()); return list; } private ApiInfo apiInfo() { /*作者信息*/ Contact contact = new Contact("", "", ""); return new ApiInfo( "KJB接口文档", "KJB V1.0 测试接口文档", "v1.0", "", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<>() ); } }