Skip to content

Commit d8a4588

Browse files
fix: qlight token refreshment (#1488)
1 parent 7b46a8b commit d8a4588

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

qlight/token_holder.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"encoding/json"
77
"fmt"
88
"strings"
9+
"sync"
910
"time"
1011

1112
"github.com/ethereum/go-ethereum/log"
@@ -22,6 +23,7 @@ type TokenHolder struct {
2223
peerUpdater RunningPeerAuthUpdater
2324
timer *time.Timer
2425
eta time.Time
26+
lock sync.Mutex
2527
}
2628

2729
func NewTokenHolder(psi string, pluginManager *plugin.PluginManager) (*TokenHolder, error) {
@@ -92,16 +94,7 @@ func (h *TokenHolder) refreshPlugin(pluginManager plugin.PluginManagerInterface,
9294
}
9395

9496
func (h *TokenHolder) HttpCredentialsProvider(ctx context.Context) (string, error) {
95-
if h.plugin != nil {
96-
log.Debug("HttpCredentialsProvider using plugin")
97-
err := h.updateTimer()
98-
if err != nil {
99-
log.Warn("update token timer", "err", err)
100-
}
101-
return h.plugin.TokenRefresh(ctx, h.token, h.psi)
102-
}
103-
log.Debug("HttpCredentialsProvider using token")
104-
return h.token, nil
97+
return h.CurrentToken(), nil
10598
}
10699

107100
func (h *TokenHolder) ReloadPlugin() error {
@@ -134,6 +127,8 @@ func (h *TokenHolder) CurrentToken() string {
134127
if !expired {
135128
return h.token
136129
}
130+
h.lock.Lock()
131+
defer h.lock.Unlock()
137132
returnedToken, err := h.plugin.TokenRefresh(context.Background(), h.token, h.psi)
138133
if err != nil {
139134
log.Error("get token from plugin", "err", err)
@@ -221,7 +216,7 @@ func (h *TokenHolder) tokenExpirationDelay() (time.Duration, error) {
221216
func (h *TokenHolder) tokenExpired() (bool, error) {
222217
expireIn, err := h.tokenExpirationDelay()
223218
if err != nil {
224-
return false, err
219+
return true, err
225220
}
226221
return expireIn < time.Duration(h.refreshAnticipation)*time.Millisecond, nil
227222
}

0 commit comments

Comments
 (0)