This is an automated email from the ASF dual-hosted git repository.

albumenj 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 cb92fcc19e Fix obtaining remote application name on the server side 
(#13811)
cb92fcc19e is described below

commit cb92fcc19ee8829a1390947f0952094fbfedc277
Author: TomlongTK <[email protected]>
AuthorDate: Fri Mar 8 10:01:18 2024 +0800

    Fix obtaining remote application name on the server side (#13811)
---
 .../dubbo/rpc/protocol/tri/h12/AbstractServerCallListener.java      | 3 ++-
 .../dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java | 4 ++--
 .../rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java | 6 ++++++
 .../tri/h12/grpc/GrpcHttp2ServerTransportListenerFactory.java       | 5 ++---
 .../tri/h12/http1/DefaultHttp11ServerTransportListener.java         | 2 +-
 .../protocol/tri/h12/http2/Http2ServerCallToObserverAdapter.java    | 5 +++--
 6 files changed, 16 insertions(+), 9 deletions(-)

diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerCallListener.java
 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerCallListener.java
index 6b365fc59c..28a5a9fbf4 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerCallListener.java
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerCallListener.java
@@ -31,6 +31,7 @@ import java.net.InetSocketAddress;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_TIMEOUT_SERVER;
+import static 
org.apache.dubbo.rpc.protocol.tri.TripleConstant.REMOTE_ADDRESS_KEY;
 
 public abstract class AbstractServerCallListener implements ServerCallListener 
{
 
@@ -56,7 +57,7 @@ public abstract class AbstractServerCallListener implements 
ServerCallListener {
                     ((Http2CancelableStreamObserver<Object>) 
responseObserver).getCancellationContext());
         }
         InetSocketAddress remoteAddress =
-                (InetSocketAddress) 
invocation.getAttributes().remove("tri.remote.address");
+                (InetSocketAddress) 
invocation.getAttributes().remove(REMOTE_ADDRESS_KEY);
         RpcContext.getServiceContext().setRemoteAddress(remoteAddress);
         String remoteApp = (String) 
invocation.getAttributes().remove(TripleHeaderEnum.CONSUMER_APP_NAME_KEY);
         if (null != remoteApp) {
diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
index d3bf0ffb5e..9839625823 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
@@ -34,7 +34,6 @@ import org.apache.dubbo.rpc.model.FrameworkModel;
 import org.apache.dubbo.rpc.model.MethodDescriptor;
 import org.apache.dubbo.rpc.protocol.tri.DescriptorUtils;
 import org.apache.dubbo.rpc.protocol.tri.RpcInvocationBuildContext;
-import org.apache.dubbo.rpc.protocol.tri.TripleConstant;
 import org.apache.dubbo.rpc.protocol.tri.TripleHeaderEnum;
 import org.apache.dubbo.rpc.protocol.tri.route.DefaultRequestRouter;
 import org.apache.dubbo.rpc.protocol.tri.route.RequestRouter;
@@ -47,6 +46,7 @@ import java.util.concurrent.Executor;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_ERROR_USE_THREAD_POOL;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.INTERNAL_ERROR;
 import static 
org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_PARSE;
+import static 
org.apache.dubbo.rpc.protocol.tri.TripleConstant.REMOTE_ADDRESS_KEY;
 
 public abstract class AbstractServerTransportListener<HEADER extends 
RequestMetadata, MESSAGE extends HttpInputMessage>
         implements HttpTransportListener<HEADER, MESSAGE> {
@@ -209,7 +209,7 @@ public abstract class 
AbstractServerTransportListener<HEADER extends RequestMeta
         inv.setTargetServiceUniqueName(url.getServiceKey());
         inv.setReturnTypes(methodDescriptor.getReturnTypes());
         
inv.setObjectAttachments(StreamUtils.toAttachments(httpMetadata.headers()));
-        inv.put(TripleConstant.REMOTE_ADDRESS_KEY, 
httpChannel.remoteAddress());
+        inv.put(REMOTE_ADDRESS_KEY, httpChannel.remoteAddress());
         inv.getAttributes().putAll(context.getAttributes());
 
         // customizer RpcInvocation
diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
index 9ae7881302..63c5ee2cbc 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
@@ -34,6 +34,7 @@ import org.apache.dubbo.rpc.TriRpcStatus;
 import org.apache.dubbo.rpc.model.FrameworkModel;
 import org.apache.dubbo.rpc.protocol.tri.DescriptorUtils;
 import org.apache.dubbo.rpc.protocol.tri.RpcInvocationBuildContext;
+import org.apache.dubbo.rpc.protocol.tri.TripleHeaderEnum;
 import org.apache.dubbo.rpc.protocol.tri.compressor.DeCompressor;
 import org.apache.dubbo.rpc.protocol.tri.compressor.Identity;
 import org.apache.dubbo.rpc.protocol.tri.h12.HttpMessageListener;
@@ -119,6 +120,11 @@ public class GrpcHttp2ServerTransportListener extends 
GenericHttp2ServerTranspor
                             
getContext().getServiceDescriptor().getInterfaceName(),
                             getContext().getMethodName()));
         }
+        String consumerAppKey =
+                
getHttpMetadata().headers().getFirst(TripleHeaderEnum.CONSUMER_APP_NAME_KEY.getHeader());
+        if (null != consumerAppKey) {
+            invocation.put(TripleHeaderEnum.CONSUMER_APP_NAME_KEY, 
consumerAppKey);
+        }
         return invocation;
     }
 
diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListenerFactory.java
 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListenerFactory.java
index 0f7338ef00..a80131dc9e 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListenerFactory.java
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListenerFactory.java
@@ -21,11 +21,10 @@ import org.apache.dubbo.remoting.http12.h2.H2StreamChannel;
 import org.apache.dubbo.remoting.http12.h2.Http2ServerTransportListenerFactory;
 import org.apache.dubbo.remoting.http12.h2.Http2TransportListener;
 import org.apache.dubbo.rpc.model.FrameworkModel;
+import org.apache.dubbo.rpc.protocol.tri.TripleHeaderEnum;
 
 public class GrpcHttp2ServerTransportListenerFactory implements 
Http2ServerTransportListenerFactory {
 
-    public static final String CONTENT_TYPE = "application/grpc";
-
     @Override
     public Http2TransportListener newInstance(H2StreamChannel streamChannel, 
URL url, FrameworkModel frameworkModel) {
         return new GrpcHttp2ServerTransportListener(streamChannel, url, 
frameworkModel);
@@ -33,6 +32,6 @@ public class GrpcHttp2ServerTransportListenerFactory 
implements Http2ServerTrans
 
     @Override
     public boolean supportContentType(String contentType) {
-        return contentType != null && contentType.startsWith(CONTENT_TYPE);
+        return contentType != null && 
contentType.startsWith(TripleHeaderEnum.APPLICATION_GRPC.getHeader());
     }
 }
diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
index 23da009f29..11f3012c22 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
@@ -88,7 +88,7 @@ public class DefaultHttp11ServerTransportListener
                 return new AutoCompleteUnaryServerCallListener(invocation, 
invoker, serverChannelObserver);
             case SERVER_STREAM:
                 serverChannelObserver = new 
Http1ServerStreamChannelObserver(httpChannel);
-                serverChannelObserver.setHeadersCustomizer((headers) ->
+                serverChannelObserver.setHeadersCustomizer(headers ->
                         headers.set(HttpHeaderNames.CONTENT_TYPE.getName(), 
MediaType.TEXT_EVENT_STREAM.getName()));
                 return new 
AutoCompleteServerStreamServerCallListener(invocation, invoker, 
serverChannelObserver);
             default:
diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/Http2ServerCallToObserverAdapter.java
 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/Http2ServerCallToObserverAdapter.java
index 62ae0ad1a0..2e6001e56a 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/Http2ServerCallToObserverAdapter.java
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/Http2ServerCallToObserverAdapter.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.rpc.protocol.tri.h12.http2;
 
 import org.apache.dubbo.remoting.http12.h2.H2StreamChannel;
 import org.apache.dubbo.rpc.model.FrameworkModel;
+import org.apache.dubbo.rpc.protocol.tri.TripleHeaderEnum;
 import org.apache.dubbo.rpc.protocol.tri.h12.ServerCallToObserverAdapter;
 
 public class Http2ServerCallToObserverAdapter extends Http2ServerStreamObserver
@@ -27,9 +28,9 @@ public class Http2ServerCallToObserverAdapter extends 
Http2ServerStreamObserver
 
     public Http2ServerCallToObserverAdapter(FrameworkModel frameworkModel, 
H2StreamChannel h2StreamChannel) {
         super(frameworkModel, h2StreamChannel);
-        setHeadersCustomizer((headers) -> {
+        setHeadersCustomizer(headers -> {
             if (exceptionCode != 0) {
-                headers.set("tri-exception-code", 
String.valueOf(exceptionCode));
+                headers.set(TripleHeaderEnum.TRI_EXCEPTION_CODE.getHeader(), 
String.valueOf(exceptionCode));
             }
         });
     }

Reply via email to