SwaggerConfig.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.zcxk.tcpserver.config;
  2. import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import springfox.documentation.builders.ApiInfoBuilder;
  6. import springfox.documentation.builders.PathSelectors;
  7. import springfox.documentation.builders.RequestHandlerSelectors;
  8. import springfox.documentation.service.ApiInfo;
  9. import springfox.documentation.service.ApiKey;
  10. import springfox.documentation.service.AuthorizationScope;
  11. import springfox.documentation.service.SecurityReference;
  12. import springfox.documentation.spi.DocumentationType;
  13. import springfox.documentation.spi.service.contexts.SecurityContext;
  14. import springfox.documentation.spring.web.plugins.Docket;
  15. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  16. import java.util.List;
  17. import static com.google.common.collect.Lists.newArrayList;
  18. @Configuration
  19. @EnableSwagger2
  20. public class SwaggerConfig {
  21. @Bean
  22. public Docket api() {
  23. return new Docket(DocumentationType.SWAGGER_2)
  24. .ignoredParameterTypes(BasicErrorController.class)
  25. .groupName("web")
  26. .select()
  27. .apis(RequestHandlerSelectors.any())
  28. .paths(PathSelectors.any())
  29. .build()
  30. .apiInfo(apiInfo())
  31. .securitySchemes(securitySchemes())
  32. .securityContexts(securityContexts());
  33. }
  34. private ApiInfo apiInfo() {
  35. return new ApiInfoBuilder()
  36. .title("智慧城市Api")
  37. .description("智慧城市")
  38. .version("1.0")
  39. .termsOfServiceUrl("Terms of service")
  40. .license("测试")
  41. .build();
  42. }
  43. private List<ApiKey> securitySchemes() {
  44. return newArrayList(
  45. new ApiKey("Authorization", "Authorization", "header"));
  46. }
  47. private List<SecurityContext> securityContexts() {
  48. return newArrayList(
  49. SecurityContext.builder()
  50. .securityReferences(defaultAuth())
  51. .forPaths(PathSelectors.regex("^(?!auth).*$"))
  52. .build()
  53. );
  54. }
  55. List<SecurityReference> defaultAuth() {
  56. AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
  57. AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
  58. authorizationScopes[0] = authorizationScope;
  59. return newArrayList(
  60. new SecurityReference("Authorization", authorizationScopes));
  61. }
  62. }