mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-11-13 17:56:09 +08:00
fix limit on max bytes to buffer : 262144
This commit is contained in:
@@ -18,6 +18,7 @@ import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.codec.HttpMessageReader;
|
||||
import org.springframework.http.codec.ServerCodecConfigurer;
|
||||
import org.springframework.http.converter.FormHttpMessageConverter;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
@@ -78,6 +79,17 @@ public class ServerWebExchangeUtil {
|
||||
return ServerRequest.create(exchange, messageReaders);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建一个接受请求体的request
|
||||
*
|
||||
* @param exchange exchange
|
||||
* @param codecConfigurer codecConfigurer
|
||||
* @return 返回ServerRequest
|
||||
*/
|
||||
public static ServerRequest createReadBodyRequest(ServerWebExchange exchange, ServerCodecConfigurer codecConfigurer) {
|
||||
return ServerRequest.create(exchange, codecConfigurer.getReaders());
|
||||
}
|
||||
|
||||
public static ApiParam getApiParamForRestful(ServerWebExchange exchange, String path) {
|
||||
int index = path.indexOf(REST_PATH);
|
||||
// 取"/rest"的后面部分
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.springframework.core.annotation.Order;
|
||||
import org.springframework.core.io.buffer.DataBuffer;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.codec.ServerCodecConfigurer;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
|
||||
import org.springframework.web.reactive.function.BodyInserter;
|
||||
@@ -61,6 +62,9 @@ public class IndexFilter implements WebFilter {
|
||||
@Autowired
|
||||
private GatewayForwardChooser gatewayForwardChooser;
|
||||
|
||||
@Autowired
|
||||
private ServerCodecConfigurer codecConfigurer;
|
||||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
@@ -84,7 +88,7 @@ public class IndexFilter implements WebFilter {
|
||||
}
|
||||
if (Objects.equals(path, indexPath)) {
|
||||
if (request.getMethod() == HttpMethod.POST) {
|
||||
ServerRequest serverRequest = ServerWebExchangeUtil.createReadBodyRequest(exchange);
|
||||
ServerRequest serverRequest = ServerWebExchangeUtil.createReadBodyRequest(exchange, codecConfigurer);
|
||||
// 读取请求体中的内容
|
||||
Mono<?> modifiedBody = serverRequest.bodyToMono(byte[].class)
|
||||
.flatMap(data -> {
|
||||
|
||||
Reference in New Issue
Block a user