2014-09-23 80 views
0

我有一个Spring数据休息的Spring Boot应用程序,我通过jar文件与嵌入式Tomcat进行部署。应用程序在端口8080上运行,但在Tomcat的前面有一个httpd,它传递请求。 现在应用程序带有HATEOAS链接,我正在使用我的JS客户端。 响应看起来是这样的:如何更改Spring Data REST HATEOAS链接中的主机名?

{ 
    "property" : "value" 
    "_links" : { 
    "self" : { 
     "href" : "http://my.server:8080/resource/1" 
    } 
    } 
} 

我的问题是,因为我通过my.server访问应用程序,该应用程序带有href响应my.server:8080,这是不是从外部访问。 如何在不使端口80下运行tomcat的情况下将href主机名更改为my.server(不带端口)? 我尝试了继承RepositoryRestMvcConfiguration并设置baseURI,但那不起作用,因为我得到了404然后。

+0

我怀疑这本质上是一个愚蠢的http://stackoverflow.com/questions/24179807/is-there-a-means-to-set-the-host-port-for-the-spring-hateoas- controllerlinkbu – Steve 2014-09-23 11:03:47

+0

另外值得注意的是之前有一个影响事物的bug(https://jira.spring.io/browse/SPR-11872)。不确定它是否已在更新版本的spring-hateoas中得到解决。 – Steve 2014-09-23 11:04:57

回答

0

如果您可以配置您的httpd而不更改HOST标头,您将获得您之后的默认链接构建器使用HOST标头构造URL的内容。

或者,你可以让你的httpd附加一个X-Forwarded-Host头,它使用HOST头来覆盖URL构造。