Move interceptor logic

This commit is contained in:
pruthvidhodda 2020-08-27 15:14:42 -07:00
parent 39f729221c
commit 2a565d844e
2 changed files with 11 additions and 45 deletions

View File

@ -21,6 +21,8 @@ import io.dapr.client.domain.SaveStateRequest;
import io.dapr.client.domain.State;
import io.dapr.client.domain.StateOptions;
import io.dapr.serializer.DaprObjectSerializer;
import io.dapr.utils.Constants;
import io.dapr.utils.Properties;
import io.dapr.utils.TypeRef;
import io.dapr.v1.CommonProtos;
import io.dapr.v1.DaprGrpc;
@ -33,6 +35,7 @@ import io.grpc.Context;
import io.grpc.ForwardingClientCall;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.Metadata.Key;
import io.opencensus.implcore.trace.propagation.PropagationComponentImpl;
import io.opencensus.implcore.trace.propagation.TraceContextFormat;
import io.opencensus.trace.SpanContext;
@ -483,8 +486,15 @@ public class DaprClientGrpc extends AbstractDaprClient {
SpanContext opencensusSpanContext = extractOpenCensusSpanContext(context);
if (opencensusSpanContext != null) {
byte[] grpcTraceBin = OPENCENSUS_BINARY_FORMAT.toByteArray(opencensusSpanContext);
headers.put(Metadata.Key.of("grpc-trace-bin", Metadata.BINARY_BYTE_MARSHALLER), grpcTraceBin);
headers.put(Key.of("grpc-trace-bin", Metadata.BINARY_BYTE_MARSHALLER), grpcTraceBin);
}
String daprApiToken = Properties.getStringOrDefault(Constants.DAPR_API_TOKEN,
Constants.DAPR_API_TOKEN, null);
if (daprApiToken != null) {
headers.put(Key.of(Constants.DAPR_API_TOKEN_HEADER, Metadata.ASCII_STRING_MARSHALLER), daprApiToken);
}
super.start(responseListener, headers);
}
};

View File

@ -1,44 +0,0 @@
/*
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
package io.dapr;
import io.dapr.utils.Constants;
import io.dapr.utils.Properties;
import io.grpc.CallOptions;
import io.grpc.Channel;
import io.grpc.ClientCall;
import io.grpc.ClientInterceptor;
import io.grpc.ForwardingClientCall;
import io.grpc.Metadata;
import io.grpc.Metadata.Key;
import io.grpc.MethodDescriptor;
/**
* A dapr grpc client call interceptor.
*/
public class DaprClientGrpcInterceptor implements ClientInterceptor {
/**
* {@inheritDoc}
*/
@Override
public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(MethodDescriptor<ReqT,
RespT> methodDescriptor,
CallOptions callOptions, Channel channel) {
return new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(channel.newCall(methodDescriptor,
callOptions)) {
@Override
public void start(final Listener<RespT> responseListener, final Metadata headers) {
String daprApiToken = Properties.getStringOrDefault(Constants.DAPR_API_TOKEN,
Constants.DAPR_API_TOKEN, null);
if (daprApiToken != null) {
headers.put(Key.of(Constants.DAPR_API_TOKEN_HEADER, Metadata.ASCII_STRING_MARSHALLER), daprApiToken);
}
super.start(responseListener, headers);
}
};
}
}