Skip to content

Commit e2be6b8

Browse files
committed
[RFC-0010] Add provider audience to cache key
Signed-off-by: Matheus Pimenta <[email protected]>
1 parent 7a72e48 commit e2be6b8

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

auth/get_token.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func GetToken(ctx context.Context, provider Provider, opts ...Option) (Token, er
4545
}
4646

4747
// Update access token fetcher for a service account if specified.
48+
var providerAudience string
4849
var providerIdentity string
4950
var serviceAccountP *corev1.ServiceAccount
5051
if o.ServiceAccount != nil {
@@ -63,7 +64,7 @@ func GetToken(ctx context.Context, provider Provider, opts ...Option) (Token, er
6364

6465
// Get provider audience.
6566
var err error
66-
providerAudience, err := provider.GetAudience(ctx, serviceAccount)
67+
providerAudience, err = provider.GetAudience(ctx, serviceAccount)
6768
if err != nil {
6869
return nil, fmt.Errorf("failed to get provider audience: %w", err)
6970
}
@@ -131,7 +132,8 @@ func GetToken(ctx context.Context, provider Provider, opts ...Option) (Token, er
131132
}
132133

133134
// Build cache key.
134-
cacheKey := buildCacheKey(provider, providerIdentity, artifactRepositoryCacheKey, serviceAccountP, opts...)
135+
cacheKey := buildCacheKey(provider, providerAudience, providerIdentity,
136+
artifactRepositoryCacheKey, serviceAccountP, opts...)
135137

136138
// Get involved object details.
137139
kind := o.InvolvedObject.Kind
@@ -163,7 +165,7 @@ func newServiceAccountToken(ctx context.Context, client client.Client,
163165
return tokenReq.Status.Token, nil
164166
}
165167

166-
func buildCacheKey(provider Provider, providerIdentity, artifactRepositoryKey string,
168+
func buildCacheKey(provider Provider, providerAudience, providerIdentity, artifactRepositoryKey string,
167169
serviceAccount *corev1.ServiceAccount, opts ...Option) string {
168170

169171
var o Options
@@ -174,6 +176,7 @@ func buildCacheKey(provider Provider, providerIdentity, artifactRepositoryKey st
174176
keyParts = append(keyParts, fmt.Sprintf("provider=%s", provider.GetName()))
175177

176178
if serviceAccount != nil {
179+
keyParts = append(keyParts, fmt.Sprintf("providerAudience=%s", providerAudience))
177180
keyParts = append(keyParts, fmt.Sprintf("providerIdentity=%s", providerIdentity))
178181
keyParts = append(keyParts, fmt.Sprintf("serviceAccountName=%s", serviceAccount.Name))
179182
keyParts = append(keyParts, fmt.Sprintf("serviceAccountNamespace=%s", serviceAccount.Namespace))

auth/get_token_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ func TestGetToken(t *testing.T) {
325325
tokenCache, err := cache.NewTokenCache(1)
326326
g.Expect(err).NotTo(HaveOccurred())
327327

328-
const key = "da48da328aa46181e677d76c835b7ca32b5fbf64da01577463d42a2720708ecb"
328+
const key = "7dbde7c617cd92ad3187cac7db8587d268aa81402be65fcf67e6f4537c8dcc63"
329329
token := &mockToken{token: "cached-token"}
330330
cachedToken, ok, err := tokenCache.GetOrSet(ctx, key, func(ctx context.Context) (cache.Token, error) {
331331
return token, nil

0 commit comments

Comments
 (0)