【问题标题】:Springfox Swagger generating requests with port 80 for HTTPS URLSSpringfox Swagger 使用端口 80 为 HTTPS URL 生成请求
【发布时间】:2016-01-12 01:52:26
【问题描述】:

我在使用 springfox-swagger2 v2.2.0 时遇到与 HTTP URL 的请求填充端口 80 相关的问题。

是否有禁用端口的生成或基于 Spring Profile 以编程方式将端口设置为 443?

生成的 CURL:

curl -X GET --header "Accept: application/json" "https://test.com:80/api/users/search"

【问题讨论】:

  • 我也对解决方案感兴趣 - 这里有同样的问题。
  • 您是否让服务位于负载均衡器后面,从而导致这种情况发生?
  • @DilipKrishnan 这正是我所拥有的。我有带有 SSL 的 ELB 指向服务器。
  • @DilipKrishnan - 服务部署到 Pivotal Cloud Foundry 实例。
  • 升级到 springfox 2.6.1 和 spring 4.2+ 将解决这个问题。

标签: swagger springfox


【解决方案1】:

我有同样的问题。这是因为 Swagger 使用 Spring Framework 中的一个类,该类将端口 80 添加到 /v2/api-docs json 响应中的主机属性(检查 Swagger2Controller.class)。我在 Spring 框架版本 4.1.4.Release 中遇到了这个问题。升级到最新版本 4.3.2.Release 修复了它。

【讨论】:

    【解决方案2】:

    遇到了同样的问题,但我没有按照@Akshay 的回答升级 Spring 框架库(感谢您指出 Swagger2Controller.class),而是在我的 application-dev.yml 文件中添加了以下属性(将主机名替换为您的主持人)。

    springfox.documentation.swagger.v2.host: 主机名:443

    【讨论】:

    • 最近才用这种方法。谢谢!