【发布时间】:2022-08-24 09:06:01
【问题描述】:
我们在我们的 web 应用程序(部署在 Tomcat 中)中使用 Apache CXF for Swagger 来显示我们应用程序的 REST 端点。在我们将 Swagger UI 从 3.52.5 升级到版本 4.x.x 之前,一切都已配置并且运行良好。在 Swagger UI 版本 4.x.x 中,我们始终获得默认的 Petstore API。我发现原因是https://github.com/swagger-api/swagger-ui/issues/7702
我们使用url 参数,由于安全原因,从 URL 读取配置参数被禁用,该参数被忽略。
我们使用的网址:http://host:port/webappname/doc/api-docs?url=/webappname/doc/openapi.json#/
我正在尝试通过将queryConfigEnabled 参数设置为true 来启用从URL 读取配置参数,但这对我不起作用(我知道存在安全问题)。我发现此页面 (https://cwiki.apache.org/confluence/display/CXF20DOC/OpenApiFeature) 非常接近我正在寻找的内容,但我找不到任何关于如何在我的web.xml 中为swaggerUiConfig 属性设置queryConfigEnabled 的示例。有人可以通过提供如何设置的示例来帮助我吗?
示例 web.xml:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.abc.xyz.MyApp</param-value>
</init-param>
<init-param>
<param-name>redirects-list</param-name>
<param-value>
.*\\.jsp
.*\\.jspx
</param-value>
</init-param>
<init-param>
<param-name>redirect-servlet-name</param-name>
<param-value>mvc-dispatch</param-value>
</init-param>
<init-param>
<param-name>static-resources-list</param-name>
<param-value>
/index.html
.*\\.html
.*\\.htm
.*\\.json
.*\\.js
</param-value>
</init-param>
<init-param>
<param-name>static-welcome-file</param-name>
<param-value>/index.html</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
使用的版本:
CXF:3.5.1(如果需要可以升级到最新的CXF (https://mvnrepository.com/artifact/org.apache.cxf/cxf-core)
Swagger UI:4.13.2(对 4 系列中的任何版本开放(https://mvnrepository.com/artifact/org.webjars/swagger-ui)
JDK:openjdk 版本\"17.0.3\"
平台:视窗
容器:Tomcat 9.0.64
标签: jax-rs cxf swagger-ui