sping gateway и spring data rest, остаток связи переписывается на удаленный адрес подсервиса - PullRequest
0 голосов
/ 17 мая 2019

когда я использую "spring gateway" и "spring data rest".Шлюз запроса распространяю на мой весенний проект данных.но я получил в результате ссылку удаленный адрес проекта данных весной.я думаю, что это удаленный адрес шлюза.

мой адрес шлюза - "http://192.168.1.112:8080"

мой адрес проекта данных остальной пружины -" http://192.168.1.112:8082/api"

.я могу запросить "http://192.168.1.112:8080/serviceId/foo/bar" для распространения. но ссылка результата ответа имеет ошибку

{
    "_links": {
        "containers": {
            "href": "http://192.168.1.112:8082/api/containers{?page,size,sort}",
            "templated": true
        }
}

мне нужно так:

{
    "_links": {
        "containers": {
            "href": "http://192.168.1.112:8080/serviceId/api/containers{?page,size,sort}",
            "templated": true
        }
}

спасибо

1 Ответ

0 голосов
/ 11 июня 2019

С весенним облаком 2.0.

Это вещь "x-forwarded- ", заголовок - опасность.поэтому Spring Cloud не восстанавливает заголовок «x-forwarded- ».

, если вам нужно.следует зарегистрировать ForwardedHeaderFilter в весеннем веб-контексте.

некоторый код:

/** * ForwardedHeader过滤器 * * @return ForwardedHeader过滤器 */ @Bean public FilterRegistrationBean forwardedHeaderFilter() { FilterRegistrationBean<ForwardedHeaderFilter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new ForwardedHeaderFilter()); filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE); return filterRegistrationBean; }

...