This is an automated email from the ASF dual-hosted git repository. liujun pushed a commit to branch 2.7.8.1-release in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit 77457bbeacff4560a158197fcf9d56b83c3103b7 Author: ken.lj <[email protected]> AuthorDate: Fri Feb 5 16:27:51 2021 +0800 check serialization type --- .../org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java | 2 +- .../main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java | 6 ++++++ .../java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java index f4c6872..5031470 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java @@ -421,7 +421,7 @@ public class ExchangeCodec extends TelnetCodec { try { if (eventBytes != null) { int dataLen = eventBytes.length; - int threshold = ConfigurationUtils.getSystemConfiguration().getInt("deserialization.event.size", 10); + int threshold = ConfigurationUtils.getSystemConfiguration().getInt("deserialization.event.size", 50); if (dataLen > threshold) { throw new IllegalArgumentException("Event data too long, actual size " + dataLen + ", threshold " + threshold + " rejected for security consideration."); } diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java index 1686549..c6c7994 100644 --- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java +++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java @@ -231,11 +231,17 @@ public class DubboCodec extends ExchangeCodec { @Override protected Serialization getSerialization(Channel channel, Request req) { + if (!(req.getData() instanceof Invocation)) { + return super.getSerialization(channel, req); + } return DubboCodecSupport.getRequestSerialization(channel.getUrl(), (Invocation) req.getData()); } @Override protected Serialization getSerialization(Channel channel, Response res) { + if (!(res.getResult() instanceof AppResponse)) { + return super.getSerialization(channel, res); + } return DubboCodecSupport.getResponseSerialization(channel.getUrl(), (AppResponse) res.getResult()); } diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java index e55f7ac..e432dbd 100644 --- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java +++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolTest.java @@ -214,6 +214,7 @@ public class DubboProtocolTest { service.returnNonSerialized(); Assertions.fail(); } catch (RpcException e) { + e.printStackTrace(); Assertions.assertTrue(e.getMessage().contains("org.apache.dubbo.rpc.protocol.dubbo.support.NonSerialized must implement java.io.Serializable")); } }
