Secrets: Add inline secure value create method (#108987)

This commit is contained in:
Matheus Macabu
2025-08-01 13:57:51 +02:00
committed by GitHub
parent d96cd46272
commit 7374df7945
4 changed files with 223 additions and 4 deletions
@@ -244,8 +244,9 @@ func CreateUserAuthContext(ctx context.Context, namespace string, permissions ma
return types.WithAuthInfo(ctx, requester)
}
func CreateServiceAuthContext(ctx context.Context, serviceIdentity string, permissions []string) context.Context {
func CreateServiceAuthContext(ctx context.Context, serviceIdentity string, namespace string, permissions []string) context.Context {
requester := &identity.StaticRequester{
Namespace: namespace,
AccessTokenClaims: &authn.Claims[authn.AccessTokenClaims]{
Rest: authn.AccessTokenClaims{
Permissions: permissions,
@@ -256,3 +257,32 @@ func CreateServiceAuthContext(ctx context.Context, serviceIdentity string, permi
return types.WithAuthInfo(ctx, requester)
}
// CreateOBOAuthContext emulates a context where the request is made on-behalf-of (OBO) a user, with an access token.
func CreateOBOAuthContext(
ctx context.Context,
serviceIdentity string,
namespace string,
userPermissions map[string][]string,
delegatedPermissions []string,
) context.Context {
requester := &identity.StaticRequester{
Namespace: namespace,
Type: types.TypeUser,
UserID: 1,
Permissions: map[int64]map[string][]string{
1: userPermissions,
},
AccessTokenClaims: &authn.Claims[authn.AccessTokenClaims]{
Rest: authn.AccessTokenClaims{
ServiceIdentity: serviceIdentity,
DelegatedPermissions: delegatedPermissions,
Actor: &authn.ActorClaims{
Subject: "user:1",
},
},
},
}
return types.WithAuthInfo(ctx, requester)
}