当前位置: 首页 > 知识库问答 >
问题:

错误的生成服务器url在springdoc-openapi-ui(Swagger UI)部署在代理

柯昱
2023-03-14

带有springdoc openapi ui(Swagger ui)的SpringBoot2.2应用程序运行HTTP端口。应用程序部署到Kubernetes,入口将HTTPS请求从集群外部路由到服务。

在这种情况下,可在https://example.com/api/swagger-ui.html有错误的“生成的服务器url”-http://example.com/api。而它应该是https://example.com/api

虽然Swagger UI是通过HTTPS访问的,但生成的服务器URL仍然使用HTTP。

共有3个答案

夹谷弘亮
2023-03-14

springdoc-openapiFAQ有一节我如何在反向代理后面部署Doployspringdoc-openapi-ui

常见问题部分可以扩展。

确保X-Forwarded标头由您的代理发送(X-Forwarded-ForX-Forwarded-Proto和其他)。

如果您正在使用下拖(spring boot starter Undertow),请设置属性server。forward headers strategy=NATIVE使Web服务器以本机方式处理X-Forwarded标头。此外,如果你不使用它,考虑切换到拖欠。

如果您使用的是Tomcat(spring boot starter Tomcat),请设置属性server。forward headers strategy=NATIVE,并确保列出属性服务器中要信任的所有内部代理的IP地址。公猫内部代理=192\\.168\\\\d{1,3}\\\\d{1,3}。默认情况下,10/8、192.168/16、169.254/16和127/8中的IP地址是可信的。

或者,对于Tomcat设置属性服务器。转发头策略=框架

有用链接:

  • 在前端代理服务器后面运行
  • 自定义Tomcat的代理配置
  • 服务器属性。转发标题策略
任小云
2023-03-14

我也有同样的问题。下面是我的工作。

@OpenAPIDefinition( 
    servers = {
       @Server(url = "/", description = "Default Server URL")
    }
) 
@SpringBootApplication
public class App {
// ...
}
堵雅健
2023-03-14

如果接受的解决方案不适合您,那么您可以通过定义bean来手动设置url。

@Bean
public OpenAPI customOpenAPI() {
    Server server = new Server();
    server.setUrl("https://example.com/api");
    return new OpenAPI().servers(List.of(server));
}

url可以通过一个属性定义并注入到这里。

 类似资料:
  • **代码:(类名已重命名)** 两个版本中的CheeseDTO YAML: 使用springdoc-openapi-ui 1.3.9,我的yaml是这样生成的: 昂首阔步3注释: OpenAPi生成器maven插件 有没有办法用springdoc-openapi-ui>1.4.0生成?我必须更改我的大摇大摆的注释或更改我的java生成器吗?

  • 我使用的是默认配置,但由于某种原因,我一直收到以下错误: 任务“Generate OpenApidocs”执行失败。无法连接到http://localhost:8080/v3/api-文档等待了30秒 似乎由于某种原因,它没有设置服务器。我该怎么修好它?

  • 我有一个Spring Boot应用程序,其中API被指定为OpenAPI 3.0.2 YAML文档。我使用openapi生成器maven插件从规范生成代码http://localhost:8080/swagger-用户界面。html,它显示:“规范中未定义任何操作!” 在规范中,我有: 这导致控制器类中出现以下情况: 如果我加载openapi定义。编辑亚马尔。大摇大摆io,它显示了预期的定义。 如

  • 我在从服务器构建时遇到问题。我的项目是一个使用Netbeans IDE的Android应用程序。当我运行我的应用程序时,一切正常,编译器完全不报告任何错误。但是当我向服务器发送build Netbeans时,我会报告一个成功的构建,但是当我登录到构建服务器时,我看到的是一个构建失败并带有错误日志。 以下是我从生成服务器获得的错误日志: 构建失败/home/ec2 user/android sdk/

  • 我有一个基本的Codename One订阅,从我的角度来看,我的代码编译得很好,模拟器也工作得很好,但是Codename One Server正在获得构建错误,我尝试了几次但仍然不工作,有构建错误日志,但在这里发布太长了,我该怎么办?

  • 是否可以使用接口而不是实现这些接口的控制器类来生成swagger ui文档? 将文档放在实现类中会使它看起来杂乱无章。Springfox有这个选项,它在springdoc中可用吗?如果是,怎么做?