SwaggerConfig.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.zoniot.readingmeter.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. .build();
  38. }
  39. private List<ApiKey> securitySchemes() {
  40. return newArrayList(
  41. new ApiKey("Authorization", "Authorization", "header"));
  42. }
  43. private List<SecurityContext> securityContexts() {
  44. return newArrayList(
  45. SecurityContext.builder()
  46. .securityReferences(defaultAuth())
  47. .forPaths(PathSelectors.regex("^(?!auth).*$"))
  48. .build()
  49. );
  50. }
  51. List<SecurityReference> defaultAuth() {
  52. AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
  53. AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
  54. authorizationScopes[0] = authorizationScope;
  55. return newArrayList(
  56. new SecurityReference("Authorization", authorizationScopes));
  57. }
  58. }