Java spring云网关拦截所有传入和传出请求

Java spring云网关拦截所有传入和传出请求,java,spring,spring-webflux,spring-cloud-gateway,sidecar,Java,Spring,Spring Webflux,Spring Cloud Gateway,Sidecar,它将是一个后端应用程序,它公开一些REST端点并可以调用其他后端。 此应用程序在一台主机上运行。我想在同一台主机上运行其他应用程序-Sidecar。它应当: 1) Sidecar应接收后端应用程序的所有传出流量,以添加额外的验证标头。 2) Sidecar应接收所有传入流量,并检查auth标头,然后转发到后端应用程序 侧车应该是弹簧启动应用程序。我要选择春天的云之门 为了解决1)我将通过代理调用所有后端应用程序请求-代理是Sidecar cloud GW 为了解决2)我将只公开接收所有传入流量并

它将是一个后端应用程序,它公开一些REST端点并可以调用其他后端。 此应用程序在一台主机上运行。我想在同一台主机上运行其他应用程序-Sidecar。它应当: 1) Sidecar应接收后端应用程序的所有传出流量,以添加额外的验证标头。 2) Sidecar应接收所有传入流量,并检查auth标头,然后转发到后端应用程序

侧车应该是弹簧启动应用程序。我要选择春天的云之门

为了解决1)我将通过代理调用所有后端应用程序请求-代理是Sidecar cloud GW 为了解决2)我将只公开接收所有传入流量并转发到后端应用程序的Sidecar端点/**

下一个代码适用于后端应用程序启动传出请求并使用Sidecar作为代理的情况

@SpringBootApplication
@RestController
public class DemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}

@RequestMapping("/**")
public Mono<ResponseEntity<byte[]>> proxy(ProxyExchange<byte[]> proxy, ServerHttpRequest serverHttpRequest) throws Exception {
    return proxy.uri(serverHttpRequest.getURI().toString()).forward();
}
}
@springboot应用程序
@RestController
公共类演示应用程序{
公共静态void main(字符串[]args){
run(DemoApplication.class,args);
}
@请求映射(“/**”)
公共Mono代理(ProxyExchange代理,ServerHttpRequest ServerHttpRequest)引发异常{
返回proxy.uri(serverHttpRequest.getURI().toString()).forward();
}
}
同时,上面的代码将截获所有外部传入请求,并将其再次发送到导致无限循环的Sidecar

任何建议都应该编写Sidecar(SpringCloudGateway),一方面它将用作传出请求的代理,另一方面将所有传入请求转发到后端应用程序

谢谢