Skip to content

Commit 91a2812

Browse files
fix: StorageGRID Cached credential script tokens not expired on 401 (#4011)
1 parent 081bab2 commit 91a2812

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

cmd/collectors/storagegrid/rest/client.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,17 @@ func (c *Client) invoke() ([]byte, error) {
209209
var storageGridErr errs.StorageGridError
210210
if errors.As(err, &storageGridErr) {
211211
if storageGridErr.IsAuthErr() {
212+
// If using authToken from credential script, expire cache before retry
213+
// so fetchTokenWithAuthRetry gets fresh token instead of cached expired one
214+
pollerAuth, authErr := c.auth.GetPollerAuth()
215+
if authErr != nil {
216+
return nil, authErr
217+
}
218+
if pollerAuth.HasCredentialScript && pollerAuth.AuthToken != "" {
219+
c.Logger.Debug("Expiring cached credential script token after 401 response")
220+
c.auth.Expire()
221+
}
222+
212223
err2 := c.fetchTokenWithAuthRetry()
213224
if err2 != nil {
214225
return nil, err2

0 commit comments

Comments
 (0)