From c538f87f60f0f1d1ed78f50e18e24454797c09fa Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:33:10 +0530 Subject: [PATCH 01/14] spring fox update --- schema-core/pom.xml | 12 ------- .../swagger/SpringfoxSwaggerHostResolver.java | 34 +++++++++++++++++++ .../swagger/SwaggerDocumentationConfig.java | 26 +++++++------- 3 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java diff --git a/schema-core/pom.xml b/schema-core/pom.xml index e3493214..53a5cf65 100644 --- a/schema-core/pom.xml +++ b/schema-core/pom.xml @@ -116,18 +116,6 @@ spring-boot-starter-security - - - io.springfox - springfox-swagger2 - ${springfox-version} - - - io.springfox - springfox-swagger-ui - ${springfox-version} - - org.springframework.boot spring-boot-starter-actuator diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java new file mode 100644 index 00000000..97db6c69 --- /dev/null +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java @@ -0,0 +1,34 @@ +package org.opengroup.osdu.schema.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 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; + } +} diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java index 891a9c32..b6d846b6 100644 --- a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java @@ -22,50 +22,50 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; 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.AuthorizationScope; -import springfox.documentation.service.Parameter; +import springfox.documentation.service.ParameterType; +import springfox.documentation.service.RequestParameter; import springfox.documentation.service.SecurityReference; 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; @Configuration -@EnableSwagger2 +@EnableOpenApi public class SwaggerDocumentationConfig { public static final String AUTHORIZATION_HEADER = "Authorization"; public static final String DEFAULT_INCLUDE_PATTERN = "/.*"; @Bean public Docket api() { - ParameterBuilder builder = new ParameterBuilder(); - List parameters = new ArrayList<>(); - builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").defaultValue("common") - .modelRef(new ModelRef("string")).parameterType("header").required(true).build(); + RequestParameterBuilder builder = new RequestParameterBuilder(); + List parameters = new ArrayList<>(); + builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").in(ParameterType.HEADER).required(true).build(); parameters.add(builder.build()); - return new Docket(DocumentationType.SWAGGER_2).globalOperationParameters(parameters).select() + return new Docket(DocumentationType.OAS_30) + .globalRequestParameters(parameters).select() .apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.schema.api")).build() .securityContexts(Collections.singletonList(securityContext())) .securitySchemes(Collections.singletonList(apiKey())); } private ApiKey apiKey() { - return new ApiKey("JWT", AUTHORIZATION_HEADER, "header"); + return new ApiKey(AUTHORIZATION_HEADER, AUTHORIZATION_HEADER, "header"); } private SecurityContext securityContext() { return SecurityContext.builder().securityReferences(defaultAuth()) - .forPaths(PathSelectors.regex(DEFAULT_INCLUDE_PATTERN)).build(); + .operationSelector(o -> PathSelectors.regex(DEFAULT_INCLUDE_PATTERN).test(o.requestMappingPattern())).build(); } List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[] { authorizationScope }; - return Collections.singletonList(new SecurityReference("JWT", authorizationScopes)); + return Collections.singletonList(new SecurityReference(AUTHORIZATION_HEADER, authorizationScopes)); } } -- GitLab From 1ae78b6c885786ee98bfc4dc11f36760776cf1a7 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:48:19 +0530 Subject: [PATCH 02/14] spring fox azure update --- .../org/opengroup/osdu/schema/security/AADSecurityConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java index aa47b530..8430add8 100644 --- a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java +++ b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java @@ -40,11 +40,13 @@ public class AADSecurityConfig extends WebSecurityConfigurerAdapter { .authorizeRequests() .antMatchers("/", "/index.html", "/v2/api-docs", + "/v3/api-docs", "/configuration/ui", "/swagger-resources/**", "/configuration/security", "/swagger", "/swagger-ui.html", + "/swagger-ui/**", "/info", "/webjars/**").permitAll() .anyRequest().authenticated() -- GitLab From bd9751e4bf16be5e0fab7e214779c96ba11e6927 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 12:22:25 +0530 Subject: [PATCH 03/14] spring fox upgrade to 3.0.0 --- pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index edd74db5..22db2c09 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ 1.8 UTF-8 0.12.3 + 3.0.0 @@ -30,6 +31,15 @@ + + + + io.springfox + springfox-boot-starter + ${springfox.version} + + + org.opengroup.osdu os-schema 0.13.0-SNAPSHOT -- GitLab From a6f93ab0b32c30cb1a4c94e7d6d3920a315ec473 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:33:10 +0530 Subject: [PATCH 04/14] spring fox update --- schema-core/pom.xml | 12 ------- .../swagger/SpringfoxSwaggerHostResolver.java | 34 +++++++++++++++++++ .../swagger/SwaggerDocumentationConfig.java | 26 +++++++------- 3 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java diff --git a/schema-core/pom.xml b/schema-core/pom.xml index e3493214..53a5cf65 100644 --- a/schema-core/pom.xml +++ b/schema-core/pom.xml @@ -116,18 +116,6 @@ spring-boot-starter-security - - - io.springfox - springfox-swagger2 - ${springfox-version} - - - io.springfox - springfox-swagger-ui - ${springfox-version} - - org.springframework.boot spring-boot-starter-actuator diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java new file mode 100644 index 00000000..97db6c69 --- /dev/null +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java @@ -0,0 +1,34 @@ +package org.opengroup.osdu.schema.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 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; + } +} diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java index 891a9c32..b6d846b6 100644 --- a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java @@ -22,50 +22,50 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; 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.AuthorizationScope; -import springfox.documentation.service.Parameter; +import springfox.documentation.service.ParameterType; +import springfox.documentation.service.RequestParameter; import springfox.documentation.service.SecurityReference; 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; @Configuration -@EnableSwagger2 +@EnableOpenApi public class SwaggerDocumentationConfig { public static final String AUTHORIZATION_HEADER = "Authorization"; public static final String DEFAULT_INCLUDE_PATTERN = "/.*"; @Bean public Docket api() { - ParameterBuilder builder = new ParameterBuilder(); - List parameters = new ArrayList<>(); - builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").defaultValue("common") - .modelRef(new ModelRef("string")).parameterType("header").required(true).build(); + RequestParameterBuilder builder = new RequestParameterBuilder(); + List parameters = new ArrayList<>(); + builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").in(ParameterType.HEADER).required(true).build(); parameters.add(builder.build()); - return new Docket(DocumentationType.SWAGGER_2).globalOperationParameters(parameters).select() + return new Docket(DocumentationType.OAS_30) + .globalRequestParameters(parameters).select() .apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.schema.api")).build() .securityContexts(Collections.singletonList(securityContext())) .securitySchemes(Collections.singletonList(apiKey())); } private ApiKey apiKey() { - return new ApiKey("JWT", AUTHORIZATION_HEADER, "header"); + return new ApiKey(AUTHORIZATION_HEADER, AUTHORIZATION_HEADER, "header"); } private SecurityContext securityContext() { return SecurityContext.builder().securityReferences(defaultAuth()) - .forPaths(PathSelectors.regex(DEFAULT_INCLUDE_PATTERN)).build(); + .operationSelector(o -> PathSelectors.regex(DEFAULT_INCLUDE_PATTERN).test(o.requestMappingPattern())).build(); } List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[] { authorizationScope }; - return Collections.singletonList(new SecurityReference("JWT", authorizationScopes)); + return Collections.singletonList(new SecurityReference(AUTHORIZATION_HEADER, authorizationScopes)); } } -- GitLab From d9c9b5753419d53dd0c5d2016068e3dff91d6fa6 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:48:19 +0530 Subject: [PATCH 05/14] spring fox azure update --- .../org/opengroup/osdu/schema/security/AADSecurityConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java index aa47b530..8430add8 100644 --- a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java +++ b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java @@ -40,11 +40,13 @@ public class AADSecurityConfig extends WebSecurityConfigurerAdapter { .authorizeRequests() .antMatchers("/", "/index.html", "/v2/api-docs", + "/v3/api-docs", "/configuration/ui", "/swagger-resources/**", "/configuration/security", "/swagger", "/swagger-ui.html", + "/swagger-ui/**", "/info", "/webjars/**").permitAll() .anyRequest().authenticated() -- GitLab From 6cec80853518970bb41d270cdb8936416db92383 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 12:22:25 +0530 Subject: [PATCH 06/14] spring fox upgrade to 3.0.0 --- pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index edd74db5..22db2c09 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ 1.8 UTF-8 0.12.3 + 3.0.0 @@ -30,6 +31,15 @@ + + + + io.springfox + springfox-boot-starter + ${springfox.version} + + + org.opengroup.osdu os-schema 0.13.0-SNAPSHOT -- GitLab From 0fb49d30f89e74470c655a0cf7727abb468792b9 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:33:10 +0530 Subject: [PATCH 07/14] spring fox update --- schema-core/pom.xml | 12 ------- .../swagger/SpringfoxSwaggerHostResolver.java | 34 +++++++++++++++++++ .../swagger/SwaggerDocumentationConfig.java | 26 +++++++------- 3 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java diff --git a/schema-core/pom.xml b/schema-core/pom.xml index e3493214..53a5cf65 100644 --- a/schema-core/pom.xml +++ b/schema-core/pom.xml @@ -116,18 +116,6 @@ spring-boot-starter-security - - - io.springfox - springfox-swagger2 - ${springfox-version} - - - io.springfox - springfox-swagger-ui - ${springfox-version} - - org.springframework.boot spring-boot-starter-actuator diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java new file mode 100644 index 00000000..97db6c69 --- /dev/null +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java @@ -0,0 +1,34 @@ +package org.opengroup.osdu.schema.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 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; + } +} diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java index 891a9c32..b6d846b6 100644 --- a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java @@ -22,50 +22,50 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; 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.AuthorizationScope; -import springfox.documentation.service.Parameter; +import springfox.documentation.service.ParameterType; +import springfox.documentation.service.RequestParameter; import springfox.documentation.service.SecurityReference; 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; @Configuration -@EnableSwagger2 +@EnableOpenApi public class SwaggerDocumentationConfig { public static final String AUTHORIZATION_HEADER = "Authorization"; public static final String DEFAULT_INCLUDE_PATTERN = "/.*"; @Bean public Docket api() { - ParameterBuilder builder = new ParameterBuilder(); - List parameters = new ArrayList<>(); - builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").defaultValue("common") - .modelRef(new ModelRef("string")).parameterType("header").required(true).build(); + RequestParameterBuilder builder = new RequestParameterBuilder(); + List parameters = new ArrayList<>(); + builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").in(ParameterType.HEADER).required(true).build(); parameters.add(builder.build()); - return new Docket(DocumentationType.SWAGGER_2).globalOperationParameters(parameters).select() + return new Docket(DocumentationType.OAS_30) + .globalRequestParameters(parameters).select() .apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.schema.api")).build() .securityContexts(Collections.singletonList(securityContext())) .securitySchemes(Collections.singletonList(apiKey())); } private ApiKey apiKey() { - return new ApiKey("JWT", AUTHORIZATION_HEADER, "header"); + return new ApiKey(AUTHORIZATION_HEADER, AUTHORIZATION_HEADER, "header"); } private SecurityContext securityContext() { return SecurityContext.builder().securityReferences(defaultAuth()) - .forPaths(PathSelectors.regex(DEFAULT_INCLUDE_PATTERN)).build(); + .operationSelector(o -> PathSelectors.regex(DEFAULT_INCLUDE_PATTERN).test(o.requestMappingPattern())).build(); } List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[] { authorizationScope }; - return Collections.singletonList(new SecurityReference("JWT", authorizationScopes)); + return Collections.singletonList(new SecurityReference(AUTHORIZATION_HEADER, authorizationScopes)); } } -- GitLab From 4e5bd3eb32a695b6fef7050d0c11b9d4a8eeb620 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:48:19 +0530 Subject: [PATCH 08/14] spring fox azure update --- .../org/opengroup/osdu/schema/security/AADSecurityConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java index aa47b530..8430add8 100644 --- a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java +++ b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java @@ -40,11 +40,13 @@ public class AADSecurityConfig extends WebSecurityConfigurerAdapter { .authorizeRequests() .antMatchers("/", "/index.html", "/v2/api-docs", + "/v3/api-docs", "/configuration/ui", "/swagger-resources/**", "/configuration/security", "/swagger", "/swagger-ui.html", + "/swagger-ui/**", "/info", "/webjars/**").permitAll() .anyRequest().authenticated() -- GitLab From 042cdeb2401733be02ec0a16763bcaf8a9466732 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 12:22:25 +0530 Subject: [PATCH 09/14] spring fox upgrade to 3.0.0 --- pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index edd74db5..22db2c09 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ 1.8 UTF-8 0.12.3 + 3.0.0 @@ -30,6 +31,15 @@ + + + + io.springfox + springfox-boot-starter + ${springfox.version} + + + org.opengroup.osdu os-schema 0.13.0-SNAPSHOT -- GitLab From 2081ceaefb676de85e99974d2294587c6a2ee8f1 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Mon, 17 Jan 2022 10:37:22 +0530 Subject: [PATCH 10/14] redirect to /swagger-ui/index.html --- .../java/org/opengroup/osdu/schema/swagger/HomeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java index 35838fd7..3e1a0f63 100644 --- a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java @@ -21,6 +21,6 @@ import org.springframework.web.bind.annotation.GetMapping; public class HomeController { @GetMapping(value = "/swagger") public String swagger() { - return "redirect:swagger-ui.html"; + return "redirect:swagger-ui/index.html"; } } -- GitLab From fe896a43b0df8b8a88fdd815f952c6b9e7c03815 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:33:10 +0530 Subject: [PATCH 11/14] spring fox update --- schema-core/pom.xml | 12 ------- .../swagger/SpringfoxSwaggerHostResolver.java | 34 +++++++++++++++++++ .../swagger/SwaggerDocumentationConfig.java | 26 +++++++------- 3 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java diff --git a/schema-core/pom.xml b/schema-core/pom.xml index e3493214..53a5cf65 100644 --- a/schema-core/pom.xml +++ b/schema-core/pom.xml @@ -116,18 +116,6 @@ spring-boot-starter-security - - - io.springfox - springfox-swagger2 - ${springfox-version} - - - io.springfox - springfox-swagger-ui - ${springfox-version} - - org.springframework.boot spring-boot-starter-actuator diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java new file mode 100644 index 00000000..97db6c69 --- /dev/null +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SpringfoxSwaggerHostResolver.java @@ -0,0 +1,34 @@ +package org.opengroup.osdu.schema.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 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; + } +} diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java index 891a9c32..b6d846b6 100644 --- a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/SwaggerDocumentationConfig.java @@ -22,50 +22,50 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; 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.AuthorizationScope; -import springfox.documentation.service.Parameter; +import springfox.documentation.service.ParameterType; +import springfox.documentation.service.RequestParameter; import springfox.documentation.service.SecurityReference; 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; @Configuration -@EnableSwagger2 +@EnableOpenApi public class SwaggerDocumentationConfig { public static final String AUTHORIZATION_HEADER = "Authorization"; public static final String DEFAULT_INCLUDE_PATTERN = "/.*"; @Bean public Docket api() { - ParameterBuilder builder = new ParameterBuilder(); - List parameters = new ArrayList<>(); - builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").defaultValue("common") - .modelRef(new ModelRef("string")).parameterType("header").required(true).build(); + RequestParameterBuilder builder = new RequestParameterBuilder(); + List parameters = new ArrayList<>(); + builder.name(DpsHeaders.DATA_PARTITION_ID).description("tenant").in(ParameterType.HEADER).required(true).build(); parameters.add(builder.build()); - return new Docket(DocumentationType.SWAGGER_2).globalOperationParameters(parameters).select() + return new Docket(DocumentationType.OAS_30) + .globalRequestParameters(parameters).select() .apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.schema.api")).build() .securityContexts(Collections.singletonList(securityContext())) .securitySchemes(Collections.singletonList(apiKey())); } private ApiKey apiKey() { - return new ApiKey("JWT", AUTHORIZATION_HEADER, "header"); + return new ApiKey(AUTHORIZATION_HEADER, AUTHORIZATION_HEADER, "header"); } private SecurityContext securityContext() { return SecurityContext.builder().securityReferences(defaultAuth()) - .forPaths(PathSelectors.regex(DEFAULT_INCLUDE_PATTERN)).build(); + .operationSelector(o -> PathSelectors.regex(DEFAULT_INCLUDE_PATTERN).test(o.requestMappingPattern())).build(); } List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[] { authorizationScope }; - return Collections.singletonList(new SecurityReference("JWT", authorizationScopes)); + return Collections.singletonList(new SecurityReference(AUTHORIZATION_HEADER, authorizationScopes)); } } -- GitLab From 37703aa883189f2b61e66784d74836ea99abed7f Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 11:48:19 +0530 Subject: [PATCH 12/14] spring fox azure update --- .../org/opengroup/osdu/schema/security/AADSecurityConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java index aa47b530..8430add8 100644 --- a/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java +++ b/provider/schema-azure/src/main/java/org/opengroup/osdu/schema/security/AADSecurityConfig.java @@ -40,11 +40,13 @@ public class AADSecurityConfig extends WebSecurityConfigurerAdapter { .authorizeRequests() .antMatchers("/", "/index.html", "/v2/api-docs", + "/v3/api-docs", "/configuration/ui", "/swagger-resources/**", "/configuration/security", "/swagger", "/swagger-ui.html", + "/swagger-ui/**", "/info", "/webjars/**").permitAll() .anyRequest().authenticated() -- GitLab From 49f75475b3df74b9cee3d2fdd2f360d6c1fdc524 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Tue, 11 Jan 2022 12:22:25 +0530 Subject: [PATCH 13/14] spring fox upgrade to 3.0.0 --- pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index edd74db5..22db2c09 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ 1.8 UTF-8 0.12.3 + 3.0.0 @@ -30,6 +31,15 @@ + + + + io.springfox + springfox-boot-starter + ${springfox.version} + + + org.opengroup.osdu os-schema 0.13.0-SNAPSHOT -- GitLab From 8bc2a880bb759f9f6b11021f482c2d387ce9d381 Mon Sep 17 00:00:00 2001 From: "shitij.singh" Date: Mon, 17 Jan 2022 10:37:22 +0530 Subject: [PATCH 14/14] redirect to /swagger-ui/index.html --- .../java/org/opengroup/osdu/schema/swagger/HomeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java index 35838fd7..3e1a0f63 100644 --- a/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java +++ b/schema-core/src/main/java/org/opengroup/osdu/schema/swagger/HomeController.java @@ -21,6 +21,6 @@ import org.springframework.web.bind.annotation.GetMapping; public class HomeController { @GetMapping(value = "/swagger") public String swagger() { - return "redirect:swagger-ui.html"; + return "redirect:swagger-ui/index.html"; } } -- GitLab