mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
4.2.0
This commit is contained in:
@@ -2,8 +2,11 @@ package com.gitee.sop.gatewaycommon.gateway.codec;
|
||||
|
||||
import com.gitee.sop.gatewaycommon.manager.EnvironmentKeys;
|
||||
import org.springframework.core.codec.AbstractDataBufferDecoder;
|
||||
import org.springframework.core.codec.Decoder;
|
||||
import org.springframework.http.codec.DecoderHttpMessageReader;
|
||||
import org.springframework.http.codec.HttpMessageReader;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
import org.springframework.web.reactive.function.client.ExchangeStrategies;
|
||||
import org.springframework.web.reactive.function.server.HandlerStrategies;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
@@ -43,4 +46,23 @@ public class MessageReaderFactory {
|
||||
}
|
||||
return messageReaders;
|
||||
}
|
||||
|
||||
public static void initMaxInMemorySize(ExchangeStrategies exchangeStrategies) {
|
||||
// 修复返回大文本数据报org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
|
||||
String maxInMemorySizeValueStr = EnvironmentKeys.MAX_IN_MEMORY_SIZE.getValue();
|
||||
int maxInMemorySizeValue = Integer.parseInt(maxInMemorySizeValueStr);
|
||||
if (DEFAULT_SIZE == maxInMemorySizeValue) {
|
||||
return;
|
||||
}
|
||||
for (HttpMessageReader<?> messageReader : exchangeStrategies.messageReaders()) {
|
||||
if (messageReader instanceof DecoderHttpMessageReader) {
|
||||
DecoderHttpMessageReader reader = (DecoderHttpMessageReader) messageReader;
|
||||
Decoder decoder = reader.getDecoder();
|
||||
if (decoder instanceof AbstractDataBufferDecoder) {
|
||||
AbstractDataBufferDecoder dataBufferDecoder = (AbstractDataBufferDecoder)decoder;
|
||||
dataBufferDecoder.setMaxInMemorySize(maxInMemorySizeValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,10 +2,10 @@ package com.gitee.sop.gatewaycommon.gateway.filter;
|
||||
|
||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
||||
import com.gitee.sop.gatewaycommon.bean.SopConstants;
|
||||
import com.gitee.sop.gatewaycommon.gateway.codec.MessageReaderFactory;
|
||||
import com.gitee.sop.gatewaycommon.result.ResultExecutor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.reactivestreams.Publisher;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
||||
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
||||
import org.springframework.cloud.gateway.filter.NettyWriteResponseFilter;
|
||||
@@ -13,16 +13,12 @@ import org.springframework.cloud.gateway.filter.factory.rewrite.CachedBodyOutput
|
||||
import org.springframework.cloud.gateway.support.BodyInserterContext;
|
||||
import org.springframework.cloud.gateway.support.DefaultClientResponse;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.codec.AbstractDataBufferDecoder;
|
||||
import org.springframework.core.codec.Decoder;
|
||||
import org.springframework.core.io.buffer.DataBuffer;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseCookie;
|
||||
import org.springframework.http.client.reactive.ClientHttpResponse;
|
||||
import org.springframework.http.codec.DecoderHttpMessageReader;
|
||||
import org.springframework.http.codec.HttpMessageReader;
|
||||
import org.springframework.http.server.reactive.ServerHttpResponseDecorator;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.reactive.function.BodyInserter;
|
||||
@@ -40,9 +36,6 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.O
|
||||
*/
|
||||
public class GatewayModifyResponseGatewayFilter implements GlobalFilter, Ordered {
|
||||
|
||||
@Value("${spring.codec.max-in-memory-size:262144}")
|
||||
private int maxInMemorySize;
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
||||
@@ -107,16 +100,7 @@ public class GatewayModifyResponseGatewayFilter implements GlobalFilter, Ordered
|
||||
private ExchangeStrategies getExchangeStrategies() {
|
||||
ExchangeStrategies exchangeStrategies = ExchangeStrategies.withDefaults();
|
||||
// 修复返回大文本数据报org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
|
||||
for (HttpMessageReader<?> messageReader : exchangeStrategies.messageReaders()) {
|
||||
if (messageReader instanceof DecoderHttpMessageReader) {
|
||||
DecoderHttpMessageReader reader = (DecoderHttpMessageReader) messageReader;
|
||||
Decoder decoder = reader.getDecoder();
|
||||
if (decoder instanceof AbstractDataBufferDecoder) {
|
||||
AbstractDataBufferDecoder dataBufferDecoder = (AbstractDataBufferDecoder)decoder;
|
||||
dataBufferDecoder.setMaxInMemorySize(maxInMemorySize);
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageReaderFactory.initMaxInMemorySize(exchangeStrategies);
|
||||
return exchangeStrategies;
|
||||
}
|
||||
|
||||
|
@@ -3,7 +3,7 @@ package com.gitee.sop.websiteserver.exception;
|
||||
/**
|
||||
* @author tanghc
|
||||
*/
|
||||
public class LoginFailureException extends RuntimeException implements ExceptionCode{
|
||||
public class LoginFailureException extends RuntimeException implements ExceptionCode {
|
||||
@Override
|
||||
public ErrorCode getCode() {
|
||||
return ErrorCode.LOGIN_FAIL;
|
||||
|
Reference in New Issue
Block a user