gateway 不拦截指定路径_Spring Cloud Gateway,您可以排除路径(执行全局!=)

我希望有人可以在这里提供一些想法。我正在使用Spring Cloud Gateway的一些示例应用程序,并浏览了文档,但是我没有看到任何路由到self或进行全局忽略的方法。这里的想法是,总有一些路径需要指向自身,例如对于执行器,还有一些路径可能需要全局阻止(也许出于安全原因,例如您发现了严重的漏洞并需要禁止访问具体资源)。从目前的情况看,我无法做到这一点,但我希望我做错了!

我已经设置了应用程序,执行器在端口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} / *可能有效,但似乎不支持!=。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring Cloud Gateway全局拦截,你可以通过实现GlobalFilter接口来实现。GlobalFilter是Spring Cloud Gateway提供的全局过滤器接口,可以在请求进入网关之前或者响应离开网关之前进行一些统一的处理。 你可以创建一个类实现GlobalFilter接口,并在类上添加@Component注解,将其注册为一个Spring Bean。在这个类中,你可以实现pre和post方法来定义请求进入和响应离开网关时的处理逻辑。 在pre方法中,你可以获取到请求的信息,可以对请求进行一些校验、修改或者记录日志等操作。在post方法中,你可以获取到响应的信息,可以对响应进行一些处理,比如修改响应内容、设置响应头等。 以下是一个简单的示例: ```java import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import import org.springframework.core.Ordered; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; @Component public class MyGlobalFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 在pre方法中进行请求处理逻辑 // ... return chain.filter(exchange).then(Mono.fromRunnable(() -> { // 在post方法中进行响应处理逻辑 // ... })); } @Override public int getOrder() { // 设置过滤器的执行顺序 return Ordered.H

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值