This is an automated email from the ASF dual-hosted git repository.
icodening pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.3 by this push:
new e4fa369b29 add serialization check (#14312)
e4fa369b29 is described below
commit e4fa369b29a95200ccf331c247eaa8a106fe502a
Author: icodening <[email protected]>
AuthorDate: Wed Jun 12 09:57:13 2024 +0800
add serialization check (#14312)
---
.../rpc/protocol/tri/h12/grpc/WrapperHttpMessageCodec.java | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/WrapperHttpMessageCodec.java
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/WrapperHttpMessageCodec.java
index 9082b442b5..f7993c1ba8 100644
---
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/WrapperHttpMessageCodec.java
+++
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/WrapperHttpMessageCodec.java
@@ -24,7 +24,9 @@ import
org.apache.dubbo.remoting.http12.exception.DecodeException;
import org.apache.dubbo.remoting.http12.exception.EncodeException;
import org.apache.dubbo.remoting.http12.message.HttpMessageCodec;
import org.apache.dubbo.remoting.http12.message.MediaType;
+import org.apache.dubbo.remoting.transport.CodecSupport;
import org.apache.dubbo.rpc.model.FrameworkModel;
+import org.apache.dubbo.rpc.protocol.tri.TripleConstant;
import org.apache.dubbo.rpc.protocol.tri.TripleCustomerProtocolWapper;
import java.io.ByteArrayInputStream;
@@ -112,6 +114,8 @@ public class WrapperHttpMessageCodec implements
HttpMessageCodec {
}
TripleCustomerProtocolWapper.TripleRequestWrapper wrapper =
TripleCustomerProtocolWapper.TripleRequestWrapper.parseFrom(bos.toByteArray());
+ final String serializeType =
convertHessianFromWrapper(wrapper.getSerializeType());
+ CodecSupport.checkSerialization(serializeType, url);
setSerializeType(wrapper.getSerializeType());
Object[] ret = new Object[wrapper.getArgs().size()];
for (int i = 0; i < wrapper.getArgs().size(); i++) {
@@ -140,4 +144,11 @@ public class WrapperHttpMessageCodec implements
HttpMessageCodec {
outputStream.write(((length >> 8) & 0xFF));
outputStream.write((length & 0xFF));
}
+
+ private static String convertHessianFromWrapper(String serializeType) {
+ if (TripleConstant.HESSIAN4.equals(serializeType)) {
+ return TripleConstant.HESSIAN2;
+ }
+ return serializeType;
+ }
}