@@ -355,7 +355,7 @@ func NewClientWithAddressContext(ctx context.Context, address string) (client Cl
355
355
return nil , fmt .Errorf ("error parsing address '%s': %w" , address , err )
356
356
}
357
357
358
- at := & authToken {}
358
+ at := newAuthToken ()
359
359
360
360
opts := []grpc.DialOption {
361
361
grpc .WithUserAgent (userAgent ()),
@@ -404,7 +404,7 @@ func NewClientWithSocket(socket string) (client Client, err error) {
404
404
if socket == "" {
405
405
return nil , errors .New ("nil socket" )
406
406
}
407
- at := & authToken {}
407
+ at := newAuthToken ()
408
408
logger .Printf ("dapr client initializing for: %s" , socket )
409
409
addr := "unix://" + socket
410
410
conn , err := grpc .Dial ( //nolint:staticcheck
@@ -421,11 +421,6 @@ func NewClientWithSocket(socket string) (client Client, err error) {
421
421
}
422
422
423
423
func newClientWithConnection (conn * grpc.ClientConn , authToken * authToken ) Client {
424
- apiToken := os .Getenv (apiTokenEnvVarName )
425
- if apiToken != "" {
426
- logger .Println ("client uses API token" )
427
- authToken .set (apiToken )
428
- }
429
424
return & GRPCClient {
430
425
connection : conn ,
431
426
protoClient : pb .NewDaprClient (conn ),
@@ -435,14 +430,26 @@ func newClientWithConnection(conn *grpc.ClientConn, authToken *authToken) Client
435
430
436
431
// NewClientWithConnection instantiates Dapr client using specific connection.
437
432
func NewClientWithConnection (conn * grpc.ClientConn ) Client {
438
- return newClientWithConnection (conn , & authToken {} )
433
+ return newClientWithConnection (conn , newAuthToken () )
439
434
}
440
435
436
+ // NOTE: authToken must be created using newAuthToken()
437
+ // it is crucial to correctly initialize the dapr client with the API token from the environment variable
441
438
type authToken struct {
442
439
mu sync.RWMutex
443
440
authToken string
444
441
}
445
442
443
+ func newAuthToken () * authToken {
444
+ apiToken := os .Getenv (apiTokenEnvVarName )
445
+ if apiToken != "" {
446
+ logger .Println ("client uses API token" )
447
+ }
448
+ return & authToken {
449
+ authToken : apiToken ,
450
+ }
451
+ }
452
+
446
453
func (a * authToken ) get () string {
447
454
a .mu .RLock ()
448
455
defer a .mu .RUnlock ()
0 commit comments