2014-09-23 4 views
0

У меня есть приложение Spring Boot с Spring Data Rest, которое я развертываю через 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, который не доступен извне , Как изменить имя хоста href на my.server (без порта), не разрешив tomcat работать под портом 80? Я пробовал подклассирование RepositoryRestMvcConfiguration и установку baseURI, но это не работает, так как я получаю 404.

+0

Я подозреваю, что это по сути является обманом http://stackoverflow.com/questions/24179807/is-there-a-means-to-set-the-host-port-for-the-spring-hateoas- controllerlinkbu – Steve

+0

Также стоит отметить, что раньше была ошибка, которая влияла на вещи (https://jira.spring.io/browse/SPR-11872). Не уверен, что это было разрешено в более новых версиях spring-hateoas. – Steve

ответ

0

Если вы можете настроить свой httpd, чтобы не изменять заголовок HOST, вы получите то, что вам нужно, поскольку построитель ссылок по умолчанию использует заголовок HOST для создания URL-адресов.

В качестве альтернативы вы можете добавить свой httpd к заголовку X-Forwarded-Host, который переопределяет структуру URL, используя заголовок HOST.

Смежные вопросы