spring-data-rest在代理设置中生成错误的实体链接

时间:2017-03-30 08:36:47

标签: spring apache spring-data-rest spring-hateoas

我在Apache支持的反向代理后面部署了我的Spring Boot应用程序。此代理已正确设置标头X-Forwarded-ProtoX-Forwarded-Host。但是,spring-data-rest会生成奇怪的实体和链接。 例如。请求news资源:

GET https://myproxyhost.net/api/news

回答:

{
  "_embedded" : {
    "news" : [ {
      "title" : "Testnews",
      "_links" : {
        "self" : {
          "href" : "https://myproxyhost.net/api/news/api/news/1"
        },
        "news" : {
          "href" : "https://myproxyhost.net/api/news/api/news/1{?projection}",
          "templated" : true
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "https://myproxyhost.net/api/news/api/news"
    },
    "profile" : {
      "href" : "https://myproxyhost.net/api/news/api/profile/news"
    },
    "search" : {
      "href" : "https://myproxyhost.net/api/news/api/news/search"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}

正如您所看到的,链接以某种方式加倍,我不明白为什么。我使用的唯一spring-data-rest特性属性是:

spring.data.rest.base-path=/api

此外,在我的本地设置中,一切正常,所以我猜代理对此负责。

有人知道这里出了什么问题吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

问题是ReverseProxy设置的配置不正确导致了像

这样的网址
http://proxiedhost.net:8080//api/news

因此导致了上述问题中提到的奇怪网址。