2222import io .grpc .ManagedChannelBuilder ;
2323import reactor .core .publisher .Mono ;
2424
25+ import java .util .Collections ;
26+ import java .util .Map ;
27+
2528/**
2629 * Holds a client for Dapr sidecar communication. ActorClient should be reused.
2730 */
@@ -59,7 +62,7 @@ public ActorClient(ResiliencyOptions resiliencyOptions) {
5962 * @param overrideProperties Override properties.
6063 */
6164 public ActorClient (Properties overrideProperties ) {
62- this (buildManagedChannel ( overrideProperties ) , null , overrideProperties . getValue ( Properties . API_TOKEN ) );
65+ this (overrideProperties , null );
6366 }
6467
6568 /**
@@ -69,21 +72,38 @@ public ActorClient(Properties overrideProperties) {
6972 * @param resiliencyOptions Client resiliency options.
7073 */
7174 public ActorClient (Properties overrideProperties , ResiliencyOptions resiliencyOptions ) {
72- this (buildManagedChannel (overrideProperties ), resiliencyOptions , overrideProperties .getValue (Properties .API_TOKEN ));
75+ this (overrideProperties , null , resiliencyOptions );
76+ }
77+
78+ /**
79+ * Instantiates a new channel for Dapr sidecar communication.
80+ *
81+ * @param overrideProperties Override properties.
82+ * @param metadata gRPC metadata or HTTP headers for actor invocation.
83+ * @param resiliencyOptions Client resiliency options.
84+ */
85+ public ActorClient (Properties overrideProperties , Map <String , String > metadata , ResiliencyOptions resiliencyOptions ) {
86+ this (buildManagedChannel (overrideProperties ),
87+ metadata ,
88+ resiliencyOptions ,
89+ overrideProperties .getValue (Properties .API_TOKEN ));
7390 }
7491
7592 /**
7693 * Instantiates a new channel for Dapr sidecar communication.
7794 *
7895 * @param grpcManagedChannel gRPC channel.
96+ * @param metadata gRPC metadata or HTTP headers for actor invocation.
7997 * @param resiliencyOptions Client resiliency options.
98+ * @param daprApiToken Dapr API token.
8099 */
81100 private ActorClient (
82101 ManagedChannel grpcManagedChannel ,
102+ Map <String , String > metadata ,
83103 ResiliencyOptions resiliencyOptions ,
84104 String daprApiToken ) {
85105 this .grpcManagedChannel = grpcManagedChannel ;
86- this .daprClient = buildDaprClient (grpcManagedChannel , resiliencyOptions , daprApiToken );
106+ this .daprClient = buildDaprClient (grpcManagedChannel , metadata , resiliencyOptions , daprApiToken );
87107 }
88108
89109 /**
@@ -137,10 +157,12 @@ private static ManagedChannel buildManagedChannel(Properties overrideProperties)
137157 */
138158 private static DaprClient buildDaprClient (
139159 Channel grpcManagedChannel ,
160+ Map <String , String > metadata ,
140161 ResiliencyOptions resiliencyOptions ,
141162 String daprApiToken ) {
142163 return new DaprClientImpl (
143164 DaprGrpc .newStub (grpcManagedChannel ),
165+ metadata == null ? null : Collections .unmodifiableMap (metadata ),
144166 resiliencyOptions ,
145167 daprApiToken );
146168 }
0 commit comments