Swagger3Config.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.rf.kjb.config;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import springfox.documentation.builders.RequestHandlerSelectors;
  6. import springfox.documentation.oas.annotations.EnableOpenApi;
  7. import springfox.documentation.service.*;
  8. import springfox.documentation.spi.DocumentationType;
  9. import springfox.documentation.spi.service.contexts.SecurityContext;
  10. import springfox.documentation.spring.web.plugins.Docket;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. /**
  14. * Description: Swagger3+knife4j Config
  15. *
  16. * @author: zzf
  17. * @date: 2022-07-28
  18. */
  19. @Configuration
  20. @EnableOpenApi
  21. public class Swagger3Config {
  22. @Value("${swagger.enabled}")
  23. Boolean swaggerEnabled;
  24. @Bean
  25. public Docket docket() {
  26. return new Docket(DocumentationType.OAS_30)
  27. .apiInfo(apiInfo())
  28. // 是否开启swagger
  29. .enable(swaggerEnabled)
  30. .select()
  31. // 过滤条件,扫描指定路径下的文件
  32. .apis(RequestHandlerSelectors.basePackage("com.rf.kjb"))
  33. // 指定路径处理,PathSelectors.any()代表不过滤任何路径
  34. //.paths(PathSelectors.any())
  35. .build()
  36. .securitySchemes(securitySchemes())
  37. .securityContexts(tokenContext());
  38. }
  39. private List<SecurityContext> tokenContext() {
  40. List<SecurityContext> list = new ArrayList<>();
  41. list.add(SecurityContext.builder()
  42. .securityReferences(securityReferences())
  43. .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
  44. .build());
  45. return list;
  46. }
  47. public List<SecurityReference> securityReferences(){
  48. List<SecurityReference> list = new ArrayList<>();
  49. list.add( SecurityReference.builder()
  50. .scopes(new AuthorizationScope[0])
  51. .reference("Authorization")
  52. .build());
  53. return list;
  54. }
  55. private List<SecurityScheme> securitySchemes() {
  56. List<SecurityScheme> list = new ArrayList<>();
  57. list.add(HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("Authorization").build());
  58. return list;
  59. }
  60. private ApiInfo apiInfo() {
  61. /*作者信息*/
  62. Contact contact = new Contact("", "", "");
  63. return new ApiInfo(
  64. "KJB接口文档",
  65. "KJB V1.0 测试接口文档",
  66. "v1.0",
  67. "",
  68. contact,
  69. "Apache 2.0",
  70. "http://www.apache.org/licenses/LICENSE-2.0",
  71. new ArrayList<>()
  72. );
  73. }
  74. }