1

我希望有人可以在这里提供一些想法。我正在玩一些用于 spring 云网关的示例应用程序并浏览文档,但我没有看到任何路由到自我或进行全局忽略的方法。这里的想法是,有些路径总是需要指向自身,例如执行器,而其他路径可能需要全局阻止(可能出于安全原因,例如您发现了严重的漏洞并需要禁用对具体资源)。现在据我所知,没有办法做到这一点,但我希望我错了!

我已经设置了应用程序,执行器在端口 8081 上运行,服务器在 8080 上运行。我有两个简单的规则:

  - id: local_test_1
    uri: http://localhost:80
    order: 9000
    predicates:
    - Path=/echo
  # =====================================
  - id: local_test_2
    uri: ${test.uri}
    order: 10000
    predicates:
    - Path=/**

但是通用 /** 确保对 localhost:8081/actuator/* 的任何调用也被路由到 uri。如何从路由规则中免除管理端口,以便服务器本身处理请求?

我认为像 - Path!=${management.server.port}/* 这样的默认过滤器可能会起作用,但似乎 != 不受支持。

4

3 回答 3

0

您可以使用no://opas 的值uri:

我看到的唯一缺点是任何不应找到的端点(如/actuator/foo)仍会返回 200 OK。

于 2019-08-05T11:34:21.600 回答
0

也许您可以将- Path=/**and- setStatus=404用于其过滤器和执行器路由- Path=/actuator/**,并且- setStatus=ACCEPTED不要忘记uri: no://op两者

于 2020-11-09T07:27:44.917 回答
0
  - id: local_test_1
    uri: http://localhost:80
    order: 9000
    predicates:
      - Path=/echo
  # =====================================
  - id: local_test_2
    uri: ${test.uri}
    order: 10000
    predicates:
      - Path=/**

尝试在前面添加两个空格- Path,问题可能是您的配置不起作用。

于 2019-08-22T15:14:55.910 回答