Spring Cloud Gateway - перенаправление на основе заголовка - PullRequest
0 голосов
/ 30 апреля 2018

Просто используя Spring Cloud Gateway, я в настоящее время проксирую удаленный сайт по следующему маршруту (определенному в Kotlin):

@GetMapping("/proxgoo/**")
@Throws(Exception::class)
fun proxyPath(proxy: ProxyExchange<*>): ResponseEntity<*> {
    val path = proxy.path("/proxgoo/")
    return proxy.uri(proxiedRemote.toString() + "/" + path).get()
}

Что хорошо работает. Если мы установим proxiedRemote на https://www.google.com, это будет прекрасно работать, пока мы не попытаемся загрузить внешние ресурсы (например, изображения).

Проблема в том, что что-то вроде:

http://localhost:8081/logos/doodles/2018/**

На самом деле должен выходить на:

http://localhost:8081/proxgoo/logos/doodles/2018/**

Я думал, что если бы я мог перенаправить все, где заголовок Referer равен http://localhost:8081/proxgoo/ обратно на маршрут прокси, то это было бы все, что мне нужно:


Итак, актуальный вопрос. Я думал, что следующий конфиг перенаправит все с заголовком запроса Referer = http://localhost:8081/proxgoo/, но он не подхватывает его. Я сделал что-то глупое?

spring:
  cloud:
    gateway:
      routes:
      - id: redirect_on_referer
        predicates:
        - Header=Referer,http://localhost:8081/proxgoo/
        filters:
        - RedirectTo=302, http://localhost:8081/proxgoo/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...