From 1c55cee2df9acc01a1e8c440768012bc94e80c96 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Wed, 22 Sep 2021 21:29:51 +0200 Subject: [PATCH] Fix access token handling in fed node handshake --- federation/service/node.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/federation/service/node.go b/federation/service/node.go index 436396623..4215b66cf 100644 --- a/federation/service/node.go +++ b/federation/service/node.go @@ -30,7 +30,7 @@ type ( actionlog actionlog.Recorder - tokenEncoder auth.TokenEncoder + tokenEncoder auth.TokenGenerator name string host string @@ -290,14 +290,18 @@ func (svc node) Pair(ctx context.Context, nodeID uint64) error { return err } + var accessToken string // Generate JWT token for the federated user - authToken := svc.tokenEncoder.Encode(u) + accessToken, err = svc.tokenEncoder.Generate(ctx, u) + if err != nil { + return err + } n.UpdatedBy = auth.GetIdentityFromContext(ctx).Identity() n.UpdatedAt = now() // Start handshake initialization remote node - if err = svc.handshaker.Init(ctx, n, authToken); err != nil { + if err = svc.handshaker.Init(ctx, n, accessToken); err != nil { return err } @@ -357,14 +361,15 @@ func (svc node) HandshakeConfirm(ctx context.Context, nodeID uint64) error { return err } + var accessToken string // Generate JWT token for the federated user - authToken := svc.tokenEncoder.Encode(u) + accessToken, err = svc.tokenEncoder.Generate(ctx, u) n.UpdatedBy = auth.GetIdentityFromContext(ctx).Identity() n.UpdatedAt = now() // Complete handshake on remote node - if err = svc.handshaker.Complete(ctx, n, authToken); err != nil { + if err = svc.handshaker.Complete(ctx, n, accessToken); err != nil { return err }