Skip to content
Snippets Groups Projects
Commit 0298a467 authored by Shrikant Garg's avatar Shrikant Garg
Browse files

Merge branch 'springfox-upgrade' into 'master'

Springfox version upgrade to 3.0.0

See merge request !169
parents aafdb70e 7ac6d603
No related branches found
No related tags found
1 merge request!169Springfox version upgrade to 3.0.0
Pipeline #86089 failed
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
<java.version>8</java.version> <java.version>8</java.version>
<maven.compiler.target>${java.version}</maven.compiler.target> <maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.source>${java.version}</maven.compiler.source>
<springfox-version>2.7.0</springfox-version>
<netty.version>4.1.65.Final</netty.version> <netty.version>4.1.65.Final</netty.version>
<undertow.version>2.1.7.Final</undertow.version> <undertow.version>2.1.7.Final</undertow.version>
</properties> </properties>
...@@ -165,25 +164,7 @@ ...@@ -165,25 +164,7 @@
<version>2.8.5</version> <version>2.8.5</version>
</dependency> </dependency>
<!-- swagger dependencies --> <dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-version}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId> <groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId> <artifactId>powermock-api-mockito2</artifactId>
<version>2.0.2</version> <version>2.0.2</version>
......
package org.opengroup.osdu.notification.swagger;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.servers.Server;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import springfox.documentation.oas.web.OpenApiTransformationContext;
import springfox.documentation.oas.web.WebMvcOpenApiTransformationFilter;
import springfox.documentation.spi.DocumentationType;
import javax.servlet.http.HttpServletRequest;
@Component
@Order(Ordered.LOWEST_PRECEDENCE)
public class SpringfoxSwaggerHostResolver implements WebMvcOpenApiTransformationFilter {
@Override
public boolean supports(DocumentationType delimiter) {
return delimiter == DocumentationType.OAS_30;
}
@Override
public OpenAPI transform(OpenApiTransformationContext<HttpServletRequest> context) {
OpenAPI swagger = context.getSpecification();
Server server = swagger.getServers().get(0);
if (server.getUrl().contains(":443")) {
// via the gateway
server.setUrl(server.getUrl().replace(":443",""));
}
return swagger;
}
}
\ No newline at end of file
...@@ -3,43 +3,47 @@ package org.opengroup.osdu.notification.swagger; ...@@ -3,43 +3,47 @@ package org.opengroup.osdu.notification.swagger;
import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.http.DpsHeaders;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef; import springfox.documentation.builders.RequestParameterBuilder;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiKey; import springfox.documentation.service.ApiKey;
import springfox.documentation.service.AuthorizationScope; import springfox.documentation.service.AuthorizationScope;
import springfox.documentation.service.Parameter;
import springfox.documentation.service.ParameterType;
import springfox.documentation.service.RequestParameter;
import springfox.documentation.service.SecurityReference; import springfox.documentation.service.SecurityReference;
import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@Configuration @Configuration
@EnableSwagger2 @EnableOpenApi
public class SwaggerDocumentationConfig { public class SwaggerDocumentationConfig {
public static final String AUTHORIZATION_HEADER = "Authorization"; public static final String AUTHORIZATION_HEADER = "Authorization";
public static final String DEFAULT_INCLUDE_PATTERN = "/.*"; public static final String DEFAULT_INCLUDE_PATTERN = "/.*";
@Bean @Bean
public Docket api() { public Docket api() {
ParameterBuilder builder = new ParameterBuilder(); RequestParameterBuilder builder = new RequestParameterBuilder();
List<Parameter> parameters = new ArrayList<>(); List<RequestParameter> parameters = new ArrayList<>();
builder.name(DpsHeaders.DATA_PARTITION_ID) builder.name(DpsHeaders.DATA_PARTITION_ID)
.description("tenant") .description("tenant")
.defaultValue("common") .in(ParameterType.HEADER)
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(true) .required(true)
.build(); .build();
parameters.add(builder.build()); parameters.add(builder.build());
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.OAS_30)
.globalOperationParameters(parameters) .globalRequestParameters(parameters)
.select() .select()
.apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.notification.api")) .apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.notification.api"))
.build() .build()
...@@ -48,13 +52,13 @@ public class SwaggerDocumentationConfig { ...@@ -48,13 +52,13 @@ public class SwaggerDocumentationConfig {
} }
private ApiKey apiKey() { private ApiKey apiKey() {
return new ApiKey("JWT", AUTHORIZATION_HEADER, "header"); return new ApiKey(AUTHORIZATION_HEADER, AUTHORIZATION_HEADER, "header");
} }
private SecurityContext securityContext() { private SecurityContext securityContext() {
return SecurityContext.builder() return SecurityContext.builder()
.securityReferences(defaultAuth()) .securityReferences(defaultAuth())
.forPaths(PathSelectors.regex(DEFAULT_INCLUDE_PATTERN)) .operationSelector(o -> PathSelectors.regex(DEFAULT_INCLUDE_PATTERN).test(o.requestMappingPattern()))
.build(); .build();
} }
...@@ -64,6 +68,6 @@ public class SwaggerDocumentationConfig { ...@@ -64,6 +68,6 @@ public class SwaggerDocumentationConfig {
AuthorizationScope[] authorizationScopes = AuthorizationScope[] authorizationScopes =
new AuthorizationScope[]{authorizationScope}; new AuthorizationScope[]{authorizationScope};
return Collections.singletonList( return Collections.singletonList(
new SecurityReference("JWT", authorizationScopes)); new SecurityReference(AUTHORIZATION_HEADER, authorizationScopes));
} }
} }
\ No newline at end of file
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
<maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.source>${java.version}</maven.compiler.source>
<os-core-common.version>0.13.0-rc4</os-core-common.version> <os-core-common.version>0.13.0-rc4</os-core-common.version>
<log4j2.version>2.17.0</log4j2.version> <log4j2.version>2.17.0</log4j2.version>
<springfox.version>3.0.0</springfox.version>
</properties> </properties>
<licenses> <licenses>
...@@ -93,6 +94,39 @@ ...@@ -93,6 +94,39 @@
<version>1.18.8</version> <version>1.18.8</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- swagger dependency -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${springfox.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-metadata</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-metadata</artifactId>
<version>2.0.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> </dependencies>
<modules> <modules>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment