Установка свойств Spring Cloud Gateway Фильтрует через переменные env - PullRequest
0 голосов
/ 29 октября 2019

Я создал 2 фильтра, скажем, CustomFilter1 и CustomFilter2, для которых установлена ​​конфигурация

spring:
  cloud:
    gateway:
      default-filters:
        - name: CustomRequestFilter1
          args:
            key1: someValue 
        - name: CustomRequestFilter2
          args:
            key2: someVvalue        

Примечание. Эти значения по умолчанию фактически установлены в Java, и я написал их таким образом, не вдаваясь в деталикласс, но вопрос остается тем же.

Как мне переопределить значения для key1 / key2 через переменные env чистым способом, не путаясь с порядком?

Один из найденных мною способов - использование spring.cloud.gateway.default-filters[0].args[key1] = "someOtherValue", но для этого необходимо знать порядок фильтра, который был определен в application.yml. Кроме того, похоже, что при использовании этого второй CustomRequestFilter2 фильтр вообще не вызывается.

Как мы можем установить эти вложенные значения через переменные env?

1 Ответ

0 голосов
/ 05 ноября 2019

Наконец, я решил воспользоваться подходом Spring Cloud Gateway SecureHeadersGatewayFilterFactory , где они использовали SecureHeadersProperties внешние свойства, которые @ConfigurationProperties

...