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