springdoc-openapi swagger-ui 代理配置后面

springdoc-openapi swagger-ui behind proxy configuration

我在 spring boot 2.3.1 应用程序上添加了 swagger-ui,它在本地运行良好。

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.3.9</version>
    </dependency>

此应用程序部署在 kubernetes 集群中,但无法访问(无入口)

相反,我们部署了另一个 spring 可访问并可以调用此服务的启动应用程序。 API 呼叫重定向正常,但 swagger-ui 不起作用。

基本上,我的代理应用程序可以像这样访问: https://app-dev.domain.io/proxy-service/v2/my-service/**

=> https://app-dev.domain.io/proxy-service/v2/my-service/swagger-ui.html

在我的代理服务中,我这样设置 X-Forwarded header:

X-Forwarded-Host=主机header(app-dev.domain.io)

X-Forwarded-原型=https

X-Forwarded-前缀=/proxy-service/v2/my-service/

我也设置了headerAccept-Encoding=identity

代理服务然后调用集群内部的http://my-service

在 MyService 配置中我设置: 服务器.forward-headers-strategy=框架

它似乎找到了静态文件,但我收到 javascript 错误和空白页: 未捕获的语法错误:输入意外结束 swagger-ui-standalone-preset.js:21 未捕获的语法错误:无效或意外的标记 index.html?configUrl=/proxy-service/v2/my-service/v3/api-docs/swagger-config:41 未捕获的引用错误:未定义 SwaggerUIBundle 在 window.onload

根据我的搜索,我做了需要的事情(headers-strategy 在被调用的服务中,X-Forwarded 在代理中)

任何帮助都会很棒,因为我希望服务能够轻松测试,而无需手动维护邮递员 collection 或类似的东西。 (总是在某个时候忘记) 谢谢

我发现 javascript 文件被截断了。 所以 javascript 错误是有道理的。 我会在解决这个问题后重试

编辑: 它现在正在处理完整的 javascript 文件。 我使用 HttpURLConnection 而不是 RestTemplate 无缘无故地截断文件