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;
+    }
 }

Reply via email to