代码拉取完成,页面将自动刷新
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.10.RELEASE</version>
</dependency>
@Slf4j
@Configuration
@EnableOpenApi
@EnableKnife4j
@EnableConfigurationProperties({CustomerSwaggerProperties.class})
public class SwaggerAutoConfiguration {
@Bean
@ConditionalOnProperty(name = "xxx.xxx.swagger.enabled",havingValue = "true")
public SecurityBasicAuthFilter securityBasicAuthFilter(CustomerSwaggerProperties customerSwaggerProperties){
return new SecurityBasicAuthFilter(
customerSwaggerProperties.getSecurity().isEnabled(),
customerSwaggerProperties.getSecurity().getUsername(),
customerSwaggerProperties.getSecurity().getPassword());
}
@Bean
@ConditionalOnMissingBean
public Docket createRestApi(CustomerSwaggerProperties properties) {
return new Docket(DocumentationType.OAS_30)
.enable(properties.isEnabled())
.apiInfo(apiInfo(properties))
.select()
.apis(RequestHandlerSelectors.basePackage(properties.getBasePackage()))
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.securitySchemes(security(properties.getApiInfo().getAuthorizationHeaderName()))
.securityContexts(securityContexts(properties.getApiInfo().getAuthorizationHeaderName()));
}
private List<SecurityContext> securityContexts(String authorizationHeaderName) {
return Arrays.asList(
SecurityContext.builder()
.securityReferences(defaultAuth(authorizationHeaderName))
.forPaths(PathSelectors.regex("^(?!auth).*$"))
.build()
);
}
private List<SecurityReference> defaultAuth(String authorizationHeaderName) {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Arrays.asList(
new SecurityReference(authorizationHeaderName, authorizationScopes));
}
private List<SecurityScheme> security(String authorizationHeaderName) {
return Arrays.asList(
new ApiKey(authorizationHeaderName, authorizationHeaderName, "header")
);
}
private ApiInfo apiInfo(CustomerSwaggerProperties properties) {
return new ApiInfoBuilder()
.title(properties.getApiInfo().getTitle())
.description(properties.getApiInfo().getDescription())
//.termsOfServiceUrl("http://terms-of-services.url")
.version(properties.getApiInfo().getVersion())
.build();
}
}