|
@@ -53,7 +53,7 @@ import java.util.*;
|
|
|
public class GlobalCountAndLogFilter implements GlobalFilter, Ordered {
|
|
|
@Autowired
|
|
|
private CodecConfigurer codecConfigurer;
|
|
|
- private final List<HttpMessageReader<?>> messageReaders = codecConfigurer.getReaders();
|
|
|
+// private final List<HttpMessageReader<?>> messageReaders = codecConfigurer.getReaders();
|
|
|
private final Logger logger = LoggerFactory.getLogger(GlobalCountAndLogFilter.class);
|
|
|
public static final String COUNTER_QUEUE_NAME = "gw:counter-queue";
|
|
|
public static final String LOG_QUEUE_NAME = "gw:log-queue";
|
|
@@ -206,7 +206,7 @@ public class GlobalCountAndLogFilter implements GlobalFilter, Ordered {
|
|
|
//解析 application/x-www-form-urlencoded
|
|
|
resolvableType = ResolvableType.forClass(String.class);
|
|
|
}
|
|
|
- return messageReaders.stream().filter(reader -> reader.canRead(resolvableType, mutatedRequest.getHeaders().getContentType())).findFirst()
|
|
|
+ return codecConfigurer.getReaders().stream().filter(reader -> reader.canRead(resolvableType, mutatedRequest.getHeaders().getContentType())).findFirst()
|
|
|
.orElseThrow(() -> new IllegalStateException("no suitable HttpMessageReader.")).readMono(resolvableType, mutatedRequest, Collections.emptyMap()).flatMap(resolvedBody -> {
|
|
|
if (resolvedBody instanceof MultiValueMap) {
|
|
|
LinkedMultiValueMap map = (LinkedMultiValueMap) resolvedBody;
|
|
@@ -243,7 +243,7 @@ public class GlobalCountAndLogFilter implements GlobalFilter, Ordered {
|
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
|
private Mono writeBodyLog(ServerWebExchange exchange, GatewayFilterChain chain, CountRecord countRecord, RequestRecord requestRecord) {
|
|
|
- ServerRequest serverRequest = ServerRequest.create(exchange, messageReaders);
|
|
|
+ ServerRequest serverRequest = ServerRequest.create(exchange, codecConfigurer.getReaders());
|
|
|
Mono<String> modifiedBody = serverRequest.bodyToMono(String.class)
|
|
|
.flatMap(body -> {
|
|
|
requestRecord.setRequestBody(body);
|