12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package com.jpsoft.smart.config;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.bind.annotation.RestController;
- 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;
- @Configuration
- @EnableSwagger2
- public class SwaggerConfig {
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
- .paths(PathSelectors.any())
- .build()
- //添加登录认证
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
- }
- private List<ApiKey> securitySchemes() {
- //设置请求头信息
- List<ApiKey> result = new ArrayList<>();
- ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header");
- result.add(apiKey);
- return result;
- }
- private List<SecurityContext> securityContexts() {
- //设置需要登录认证的路径
- List<SecurityContext> result = new ArrayList<>();
- result.add(getContextByPath("/*"));
- return result;
- }
- private SecurityContext getContextByPath(String pathRegex){
- return SecurityContext.builder()
- .securityReferences(defaultAuth())
- .forPaths(PathSelectors.regex(pathRegex))
- .build();
- }
- private List<SecurityReference> defaultAuth() {
- List<SecurityReference> result = new ArrayList<>();
- AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
- AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
- authorizationScopes[0] = authorizationScope;
- result.add(new SecurityReference("Authorization", authorizationScopes));
- return result;
- }
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title("后台接口文档")
- .description("")
- .termsOfServiceUrl("")
- .version("1.0")
- .build();
- }
- }
|