Spring Cloud Gateway: отключить маршруты по умолчанию - PullRequest
0 голосов
/ 14 июня 2019

Я использую Spring Cloud для управления своими микросервисами.

Из соображений безопасности для одного конкретного микросервиса (назовите его ms_secure) я хочу использовать собственный маршрут и выбрать конкретную версию микросервиса в зависимости от IP-адреса клиента.

Моя конфигурация шлюза выглядит следующим образом:

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: ms_secure_v1
          uri: lb://ms_secure_v1
          predicates:
            - Path=/ms_secure/**
          filters:
            - RewritePath=/ms_secure/(?<segment>.*), /$\{segment}
            - name: <my filter>
              args:
                xForwardedForHeaderName: X-Forwarded-For
                hosts:
                  - <IP1>
                  - <IP2>

        - id: ms_secure
          uri: lb://ms_secure_v2
          predicates:
            - Path=/ms_secure/**
          filters:
            - RewritePath=/ms_secure/(?<segment>.*), /$\{segment}
            - name: <my filter>
              args:
                xForwardedForHeaderName: X-Forwarded-For
                hosts:
                  - <IP3>
                  - <IP4>

Когда при запросе / ms_secure:

  • IP1 и IP2 будут перенаправлены на ms_secure_v1
  • IP3 и IP4 будут перенаправлены на ms_secure_v2

Моя проблема заключается в том, что все мои клиенты также смогут получать прямой доступ к ms_secure_v1 или ms_secure_v2, используя маршруты по умолчанию:

http: ///ms_secure_v1/...

http: ///ms_secure_v2/...

Я попытался отключить эти маршруты с помощью SetStatus GatewayFilter:

        - id: setstatusstring_route
          uri: lb://ms-gateway
          predicates:
            - Path=/ms_secure_v**
          filters:
          - SetStatus=403

Но этот маршрут не соответствует.

Есть ли способ отключить эти маршруты по умолчанию в весеннем шлюзе?

1 Ответ

1 голос
/ 18 июня 2019

Следующее создает маршруты в шлюзе на основе зарегистрированных служб:

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true

Установите значение false (по умолчанию), если вы не хотите этого.

...