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.HttpMethod;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.codec.HttpMessageReader;
|
import org.springframework.http.codec.HttpMessageReader;
|
||||||
|
import org.springframework.http.codec.ServerCodecConfigurer;
|
||||||
import org.springframework.http.converter.FormHttpMessageConverter;
|
import org.springframework.http.converter.FormHttpMessageConverter;
|
||||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
@@ -78,6 +79,17 @@ public class ServerWebExchangeUtil {
|
|||||||
return ServerRequest.create(exchange, messageReaders);
|
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) {
|
public static ApiParam getApiParamForRestful(ServerWebExchange exchange, String path) {
|
||||||
int index = path.indexOf(REST_PATH);
|
int index = path.indexOf(REST_PATH);
|
||||||
// 取"/rest"的后面部分
|
// 取"/rest"的后面部分
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.springframework.core.annotation.Order;
|
|||||||
import org.springframework.core.io.buffer.DataBuffer;
|
import org.springframework.core.io.buffer.DataBuffer;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.codec.ServerCodecConfigurer;
|
||||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||||
import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
|
import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
|
||||||
import org.springframework.web.reactive.function.BodyInserter;
|
import org.springframework.web.reactive.function.BodyInserter;
|
||||||
@@ -61,6 +62,9 @@ public class IndexFilter implements WebFilter {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private GatewayForwardChooser gatewayForwardChooser;
|
private GatewayForwardChooser gatewayForwardChooser;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ServerCodecConfigurer codecConfigurer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
|
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
|
||||||
ServerHttpRequest request = exchange.getRequest();
|
ServerHttpRequest request = exchange.getRequest();
|
||||||
@@ -84,7 +88,7 @@ public class IndexFilter implements WebFilter {
|
|||||||
}
|
}
|
||||||
if (Objects.equals(path, indexPath)) {
|
if (Objects.equals(path, indexPath)) {
|
||||||
if (request.getMethod() == HttpMethod.POST) {
|
if (request.getMethod() == HttpMethod.POST) {
|
||||||
ServerRequest serverRequest = ServerWebExchangeUtil.createReadBodyRequest(exchange);
|
ServerRequest serverRequest = ServerWebExchangeUtil.createReadBodyRequest(exchange, codecConfigurer);
|
||||||
// 读取请求体中的内容
|
// 读取请求体中的内容
|
||||||
Mono<?> modifiedBody = serverRequest.bodyToMono(byte[].class)
|
Mono<?> modifiedBody = serverRequest.bodyToMono(byte[].class)
|
||||||
.flatMap(data -> {
|
.flatMap(data -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user