From f195cf48cf57635c8848b2bc32afd4541c4090ed Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 17 七月 2023 08:57:25 +0800 Subject: [PATCH] 更新接口 --- cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/WrapperResponseGlobalFilter.java | 120 ++++++++++++++++++++++++++++++------------------------------ 1 files changed, 60 insertions(+), 60 deletions(-) diff --git a/cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/WrapperResponseGlobalFilter.java b/cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/WrapperResponseGlobalFilter.java index 1e610d7..11c37aa 100644 --- a/cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/WrapperResponseGlobalFilter.java +++ b/cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/WrapperResponseGlobalFilter.java @@ -1,60 +1,60 @@ -package cn.mb.cloud.gateway.filter; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.cloud.gateway.filter.GatewayFilterChain; -import org.springframework.cloud.gateway.filter.GlobalFilter; -import org.springframework.core.Ordered; -import org.springframework.core.io.buffer.*; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.server.reactive.ServerHttpRequest; -import org.springframework.http.server.reactive.ServerHttpRequestDecorator; -import org.springframework.http.server.reactive.ServerHttpResponse; -import org.springframework.stereotype.Component; -import org.springframework.web.server.ServerWebExchange; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -import java.nio.charset.StandardCharsets; -import java.util.Set; - - -@Slf4j -@Component -public class WrapperResponseGlobalFilter implements GlobalFilter, Ordered { - - @Override - public int getOrder() { - return Ordered.HIGHEST_PRECEDENCE; - } - - @Override - public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { - ServerHttpRequest req = exchange.getRequest(); - ServerHttpResponse res = exchange.getResponse(); - String method = req.getMethodValue(); - MediaType ct = req.getHeaders().getContentType(); - if (HttpMethod.POST.matches(method)) { - return DataBufferUtils.join(req.getBody()).flatMap(dataBuffer -> { - byte[] bytes = new byte[dataBuffer.readableByteCount()]; - dataBuffer.read(bytes); -// String bodyStr = new String(bytes, StandardCharsets.UTF_8); -// exchange.getAttributes().put("POST_BODY", bodyStr); - DataBufferUtils.release(dataBuffer); - Flux<DataBuffer> cachedFlux = Flux.defer(() -> { - DataBuffer buffer = res.bufferFactory().wrap(bytes); - return Mono.just(buffer); - }); - ServerHttpRequest mutateReq = new ServerHttpRequestDecorator(req) { - @Override - public Flux<DataBuffer> getBody() { - return cachedFlux; - } - }; - return chain.filter(exchange.mutate().request(mutateReq).build()); - }); - } - return chain.filter(exchange); - } - -} +//package cn.mb.cloud.gateway.filter; +// +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.cloud.gateway.filter.GatewayFilterChain; +//import org.springframework.cloud.gateway.filter.GlobalFilter; +//import org.springframework.core.Ordered; +//import org.springframework.core.io.buffer.*; +//import org.springframework.http.HttpMethod; +//import org.springframework.http.MediaType; +//import org.springframework.http.server.reactive.ServerHttpRequest; +//import org.springframework.http.server.reactive.ServerHttpRequestDecorator; +//import org.springframework.http.server.reactive.ServerHttpResponse; +//import org.springframework.stereotype.Component; +//import org.springframework.web.server.ServerWebExchange; +//import reactor.core.publisher.Flux; +//import reactor.core.publisher.Mono; +// +//import java.nio.charset.StandardCharsets; +//import java.util.Set; +// +// +//@Slf4j +//@Component +//public class WrapperResponseGlobalFilter implements GlobalFilter, Ordered { +// +// @Override +// public int getOrder() { +// return Ordered.HIGHEST_PRECEDENCE; +// } +// +// @Override +// public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { +// ServerHttpRequest req = exchange.getRequest(); +// ServerHttpResponse res = exchange.getResponse(); +// String method = req.getMethodValue(); +// MediaType ct = req.getHeaders().getContentType(); +// if (HttpMethod.POST.matches(method)) { +// return DataBufferUtils.join(req.getBody()).flatMap(dataBuffer -> { +// byte[] bytes = new byte[dataBuffer.readableByteCount()]; +// dataBuffer.read(bytes); +//// String bodyStr = new String(bytes, StandardCharsets.UTF_8); +//// exchange.getAttributes().put("POST_BODY", bodyStr); +// DataBufferUtils.release(dataBuffer); +// Flux<DataBuffer> cachedFlux = Flux.defer(() -> { +// DataBuffer buffer = res.bufferFactory().wrap(bytes); +// return Mono.just(buffer); +// }); +// ServerHttpRequest mutateReq = new ServerHttpRequestDecorator(req) { +// @Override +// public Flux<DataBuffer> getBody() { +// return cachedFlux; +// } +// }; +// return chain.filter(exchange.mutate().request(mutateReq).build()); +// }); +// } +// return chain.filter(exchange); +// } +// +//} -- Gitblit v1.7.1