diff --git a/pom.xml b/pom.xml index 0ad752ea..6845d923 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.3.4.RELEASE + 2.1.4.RELEASE @@ -36,12 +36,12 @@ 1.8 - 2.3.4.RELEASE + 2.1.8.RELEASE - Hoxton.SR8 + Greenwich.SR6 - 2.2.3.RELEASE + 2.1.2.RELEASE @@ -135,6 +135,12 @@ ${easyopen.version} + + com.squareup.okhttp3 + okhttp + 3.14.7 + + net.oschina.durcframework easyopen-spring-boot-starter diff --git a/sop-admin/sop-admin-server/pom.xml b/sop-admin/sop-admin-server/pom.xml index 97f39640..b38a6a24 100644 --- a/sop-admin/sop-admin-server/pom.xml +++ b/sop-admin/sop-admin-server/pom.xml @@ -76,6 +76,14 @@ spring-boot-starter-test test + + + junit + junit + 4.13 + test + + org.projectlombok lombok diff --git a/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/AccountTest.java b/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/AccountTest.java index a9427f7a..dda03836 100644 --- a/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/AccountTest.java +++ b/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/AccountTest.java @@ -2,18 +2,16 @@ package com.gitee.sop.adminserver; import junit.framework.TestCase; import org.apache.commons.codec.digest.DigestUtils; -import org.junit.jupiter.api.Test; /** * @author tanghc */ -public class AccountTest extends TestCase { +public class AccountTest extends TestCase { /* 生成密码 */ - @Test - public void genPwd() { + public void testGen() { String username = "admin"; String password = "123456"; String save_to_db = DigestUtils.md5Hex(username + DigestUtils.md5Hex(password) + username); diff --git a/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/SopAdminServerApplicationTests.java b/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/SopAdminServerApplicationTests.java index 02573978..deb93a38 100644 --- a/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/SopAdminServerApplicationTests.java +++ b/sop-admin/sop-admin-server/src/test/java/com/gitee/sop/adminserver/SopAdminServerApplicationTests.java @@ -1,6 +1,5 @@ package com.gitee.sop.adminserver; -import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @@ -9,8 +8,4 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SopAdminServerApplicationTests { - @Test - public void contextLoads() { - } - } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/GatewayPredicateDefinition.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/GatewayPredicateDefinition.java index 06a6c0e5..db9b4d62 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/GatewayPredicateDefinition.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/GatewayPredicateDefinition.java @@ -3,7 +3,6 @@ package com.gitee.sop.gatewaycommon.bean; import lombok.Data; import org.springframework.util.StringUtils; -import javax.validation.ValidationException; import java.util.LinkedHashMap; import java.util.Map; @@ -24,7 +23,7 @@ public class GatewayPredicateDefinition { public GatewayPredicateDefinition(String text) { int eqIdx = text.indexOf(61); if (eqIdx <= 0) { - throw new ValidationException("Unable to parse GatewayPredicateDefinition text '" + text + "', must be of the form name=value"); + throw new RuntimeException("Unable to parse GatewayPredicateDefinition text '" + text + "', must be of the form name=value"); } else { this.setName(text.substring(0, eqIdx)); String[] params = StringUtils.tokenizeToStringArray(text.substring(eqIdx + 1), ","); diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java index e73688bf..93c76f88 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java @@ -3,7 +3,6 @@ package com.gitee.sop.gatewaycommon.gateway; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.gitee.sop.gatewaycommon.bean.SopConstants; -import com.gitee.sop.gatewaycommon.gateway.codec.MessageReaderFactory; import com.gitee.sop.gatewaycommon.gateway.common.FileUploadHttpServletRequest; import com.gitee.sop.gatewaycommon.gateway.common.RequestContentDataExtractor; import com.gitee.sop.gatewaycommon.gateway.common.SopServerHttpRequestDecorator; @@ -23,6 +22,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.util.MultiValueMap; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; +import org.springframework.web.reactive.function.server.HandlerStrategies; import org.springframework.web.reactive.function.server.ServerRequest; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilterChain; @@ -47,7 +47,7 @@ public class ServerWebExchangeUtil { private static final FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter(); - private static final List> messageReaders = MessageReaderFactory.build(); + private static final List> messageReaders = HandlerStrategies.withDefaults().messageReaders(); /** * 重定向 diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/codec/MessageReaderFactory.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/codec/MessageReaderFactory.java deleted file mode 100644 index b81f1eec..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/codec/MessageReaderFactory.java +++ /dev/null @@ -1,68 +0,0 @@ -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; -import java.util.List; - -/** - * @author tanghc - */ -public class MessageReaderFactory { - - public static final String METHOD_SET_MAX_IN_MEMORY_SIZE = "setMaxInMemorySize"; - public static final String METHOD_GET_DECODER = "getDecoder"; - public static final int DEFAULT_SIZE = 256 * 1024; - - public static List> build() { - String maxInMemorySizeValueStr = EnvironmentKeys.MAX_IN_MEMORY_SIZE.getValue(); - int maxInMemorySizeValue = Integer.parseInt(maxInMemorySizeValueStr); - List> messageReaders = HandlerStrategies.withDefaults().messageReaders(); - if (DEFAULT_SIZE == maxInMemorySizeValue) { - return messageReaders; - } - // 设置POST缓存大小 - for (HttpMessageReader httpMessageReader : messageReaders) { - Method[] methods = ReflectionUtils.getDeclaredMethods(httpMessageReader.getClass()); - for (Method method : methods) { - String methodName = method.getName(); - if (METHOD_SET_MAX_IN_MEMORY_SIZE.equals(methodName)) { - ReflectionUtils.invokeMethod(method, httpMessageReader, maxInMemorySizeValue); - } else if (METHOD_GET_DECODER.equals(methodName)) { - Object decoder = ReflectionUtils.invokeMethod(method, httpMessageReader); - if (decoder instanceof AbstractDataBufferDecoder) { - AbstractDataBufferDecoder bufferDecoder = (AbstractDataBufferDecoder) decoder; - bufferDecoder.setMaxInMemorySize(maxInMemorySizeValue); - } - } - } - } - 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); - } - } - } - } -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/GatewayModifyResponseGatewayFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/GatewayModifyResponseGatewayFilter.java index 2167b8a2..4d3bc4c1 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/GatewayModifyResponseGatewayFilter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/GatewayModifyResponseGatewayFilter.java @@ -2,7 +2,6 @@ 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; @@ -60,7 +59,7 @@ public class GatewayModifyResponseGatewayFilter implements GlobalFilter, Ordered //this will prevent exception in case of using non-standard media types like "Content-Type: image" httpHeaders.add(HttpHeaders.CONTENT_TYPE, originalResponseContentType); ResponseAdapter responseAdapter = new ResponseAdapter(body, httpHeaders); - DefaultClientResponse clientResponse = new DefaultClientResponse(responseAdapter, getExchangeStrategies()); + DefaultClientResponse clientResponse = new DefaultClientResponse(responseAdapter, ExchangeStrategies.withDefaults()); //TODO: flux or mono Mono modifiedBody = clientResponse.bodyToMono(inClass) @@ -97,13 +96,6 @@ public class GatewayModifyResponseGatewayFilter implements GlobalFilter, Ordered return chain.filter(exchange.mutate().response(responseDecorator).build()); } - private ExchangeStrategies getExchangeStrategies() { - ExchangeStrategies exchangeStrategies = ExchangeStrategies.withDefaults(); - // 修复返回大文本数据报org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144 - MessageReaderFactory.initMaxInMemorySize(exchangeStrategies); - return exchangeStrategies; - } - @Override public int getOrder() { return NettyWriteResponseFilter.WRITE_RESPONSE_FILTER_ORDER - 1; diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java index 07294768..1f302e88 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java @@ -1,7 +1,6 @@ package com.gitee.sop.servercommon.configuration; import com.alibaba.cloud.nacos.NacosDiscoveryProperties; -import com.alibaba.cloud.nacos.NacosServiceManager; import com.alibaba.cloud.nacos.discovery.NacosWatch; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.ObjectProvider; @@ -22,7 +21,7 @@ public class ServiceConfiguration extends SpringmvcConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnProperty("spring.cloud.nacos.discovery.server-addr") - public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties, ObjectProvider taskScheduler, Environment environment, NacosServiceManager nacosServiceManager) { + public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties, ObjectProvider taskScheduler, Environment environment) { Map metadata = nacosDiscoveryProperties.getMetadata(); String contextPath = environment.getProperty(METADATA_SERVER_CONTEXT_PATH); // 将context-path信息加入到metadata中 @@ -32,7 +31,7 @@ public class ServiceConfiguration extends SpringmvcConfiguration { // 在元数据中新增启动时间,不能修改这个值,不然网关拉取接口会有问题 // 如果没有这个值,网关会忽略这个服务 metadata.put("server.startup-time", String.valueOf(System.currentTimeMillis())); - return new NacosWatch(nacosServiceManager, nacosDiscoveryProperties, taskScheduler); + return new NacosWatch(nacosDiscoveryProperties, taskScheduler); } }