You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2022/06/01 01:23:35 UTC

[cxf] branch master updated: CXF-8683: Support SwaggerUI 4.10.3+ (#952)

This is an automated email from the ASF dual-hosted git repository.

reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new df05725910 CXF-8683: Support SwaggerUI 4.10.3+ (#952)
df05725910 is described below

commit df05725910b7e6b113faf214d787abd84c645bc7
Author: Andriy Redko <dr...@gmail.com>
AuthorDate: Tue May 31 21:23:29 2022 -0400

    CXF-8683: Support SwaggerUI 4.10.3+ (#952)
---
 distribution/src/main/release/samples/pom.xml                     | 2 +-
 parent/pom.xml                                                    | 2 +-
 .../java/org/apache/cxf/jaxrs/swagger/ui/SwaggerUiService.java    | 8 +++++---
 .../jaxrs/description/SwaggerUiConfigurationQueryConfigTest.java  | 1 -
 .../cxf/systest/jaxrs/description/SwaggerUiConfigurationTest.java | 2 --
 5 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/distribution/src/main/release/samples/pom.xml b/distribution/src/main/release/samples/pom.xml
index d620157882..61c460e18e 100644
--- a/distribution/src/main/release/samples/pom.xml
+++ b/distribution/src/main/release/samples/pom.xml
@@ -35,7 +35,7 @@
         <cxf.jetty9.version>9.4.46.v20220331</cxf.jetty9.version>
         <cxf.netty.version>4.1.77.Final</cxf.netty.version>
         <cxf.httpcomponents.client.version>4.5.13</cxf.httpcomponents.client.version>
-        <cxf.swagger.ui.version>4.8.1</cxf.swagger.ui.version>
+        <cxf.swagger.ui.version>4.11.1</cxf.swagger.ui.version>
         <cxf.tika.version>2.4.0</cxf.tika.version>
         <cxf.tomcat.version>9.0.63</cxf.tomcat.version>
         <graalvm.version>21.1.0</graalvm.version>
diff --git a/parent/pom.xml b/parent/pom.xml
index a9d53eb8cd..0fdbf44474 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -206,7 +206,7 @@
         <cxf.spring.security.version>5.6.5</cxf.spring.security.version>
         <cxf.spring.version>5.3.20</cxf.spring.version>
         <cxf.stax-ex.version>1.8.3</cxf.stax-ex.version>
-        <cxf.swagger.ui.version>4.8.1</cxf.swagger.ui.version>
+        <cxf.swagger.ui.version>4.11.1</cxf.swagger.ui.version>
         <cxf.swagger.v3.version>2.1.13</cxf.swagger.v3.version>
         <cxf.swagger2.version>1.6.6</cxf.swagger2.version>
         <cxf.swagger2.guava.version>31.0.1-jre</cxf.swagger2.guava.version>
diff --git a/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/ui/SwaggerUiService.java b/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/ui/SwaggerUiService.java
index bfccf12e4d..df4d1e4053 100644
--- a/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/ui/SwaggerUiService.java
+++ b/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/ui/SwaggerUiService.java
@@ -108,8 +108,8 @@ public class SwaggerUiService {
             //    http://localhost:8080/services/helloservice/api-docs?url=/services/helloservice/openapi.json
             //
             // in case the "url" configuration parameter is provided for Swagger UI.
-            if (config != null && path.endsWith("/index.html")) {
-                if (uriInfo.getQueryParameters().isEmpty()) {
+            if (config != null) {
+                if (path.endsWith("/index.html") && uriInfo.getQueryParameters().isEmpty()) {
                     final Map<String, String> params = config.getConfigParameters();
                     
                     if (params != null && !params.isEmpty()) {
@@ -127,7 +127,9 @@ public class SwaggerUiService {
 
                 // Since Swagger UI 4.1.3, passing the default URL as query parameter, 
                 // e.g. `?url=swagger.json` is disabled by default due to security concerns.
-                if (config.isQueryConfigEnabled() == null || !config.isQueryConfigEnabled()) {
+                final boolean hasUrlPlaceholder = path.endsWith("/index.html")
+                    || path.endsWith("/swagger-initializer.js");
+                if (hasUrlPlaceholder && config.isQueryConfigEnabled() == null || !config.isQueryConfigEnabled()) {
                     final String url = config.getUrl();
                     if (!StringUtils.isEmpty(url)) {
                         try (InputStream in = resourceURL.openStream()) {
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationQueryConfigTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationQueryConfigTest.java
index 3e642313fa..20d832baf3 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationQueryConfigTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationQueryConfigTest.java
@@ -87,7 +87,6 @@ public class SwaggerUiConfigurationQueryConfigTest extends AbstractClientServerT
         try (Response response = uiClient.get()) {
             String html = response.readEntity(String.class);
             assertThat(html, containsString("<!-- HTML"));
-            assertThat(html, containsString("url: \"https://petstore.swagger.io/v2/swagger.json\","));
             assertThat(response.getMediaType(), equalTo(MediaType.TEXT_HTML_TYPE));
         }
     }
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationTest.java
index fe821e544d..f9c8b3b295 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/SwaggerUiConfigurationTest.java
@@ -103,7 +103,6 @@ public class SwaggerUiConfigurationTest extends AbstractClientServerTestBase {
         try (Response response = uiClient.get()) {
             String html = response.readEntity(String.class);
             assertThat(html, containsString("<!-- HTML"));
-            assertThat(html, containsString("url: \"/swagger.json\","));
             assertThat(response.getMediaType(), equalTo(MediaType.TEXT_HTML_TYPE));
         }
     }
@@ -120,7 +119,6 @@ public class SwaggerUiConfigurationTest extends AbstractClientServerTestBase {
         try (Response response = uiClient.get()) {
             String html = response.readEntity(String.class);
             assertThat(html, containsString("<!-- HTML"));
-            assertThat(html, containsString("url: \"/swagger.json\","));
             assertThat(response.getMediaType(), equalTo(MediaType.TEXT_HTML_TYPE));
         }
     }