Release 2.3.2-beta1
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>fizz-gateway-community</artifactId>
|
||||
<groupId>com.fizzgate</groupId>
|
||||
<version>2.3.1</version>
|
||||
<version>2.3.2-beta1</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@@ -20,6 +20,7 @@ package we.plugin.requestbody;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
@@ -28,6 +29,7 @@ import we.flume.clients.log4j2appender.LogService;
|
||||
import we.plugin.FizzPluginFilter;
|
||||
import we.plugin.FizzPluginFilterChain;
|
||||
import we.spring.http.server.reactive.ext.FizzServerHttpRequestDecorator;
|
||||
import we.spring.web.server.ext.FizzServerWebExchangeDecorator;
|
||||
import we.util.NettyDataBufferUtils;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -51,19 +53,23 @@ public class RequestBodyPlugin implements FizzPluginFilter {
|
||||
NettyDataBufferUtils.join(req.getBody()).defaultIfEmpty(NettyDataBufferUtils.EMPTY_DATA_BUFFER)
|
||||
.flatMap(
|
||||
body -> {
|
||||
ServerWebExchange newExchange = exchange;
|
||||
FizzServerHttpRequestDecorator requestDecorator = new FizzServerHttpRequestDecorator(req);
|
||||
if (body != NettyDataBufferUtils.EMPTY_DATA_BUFFER) {
|
||||
FizzServerHttpRequestDecorator requestDecorator = new FizzServerHttpRequestDecorator(req);
|
||||
try {
|
||||
requestDecorator.setBody(body);
|
||||
} finally {
|
||||
NettyDataBufferUtils.release(body);
|
||||
}
|
||||
requestDecorator.getHeaders().remove(HttpHeaders.CONTENT_LENGTH);
|
||||
newExchange = exchange.mutate().request(requestDecorator).build();
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("retain body", LogService.BIZ_ID, req.getId());
|
||||
}
|
||||
}
|
||||
ServerWebExchange mutatedExchange = exchange.mutate().request(requestDecorator).build();
|
||||
ServerWebExchange newExchange = mutatedExchange;
|
||||
MediaType contentType = req.getHeaders().getContentType();
|
||||
if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(contentType)) {
|
||||
newExchange = new FizzServerWebExchangeDecorator(mutatedExchange);
|
||||
}
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug(req.getId() + " request is decorated", LogService.BIZ_ID, req.getId());
|
||||
}
|
||||
return FizzPluginFilterChain.next(newExchange);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user