Skip to content

Commit

Permalink
utils: Add GetServiceUserToken()
Browse files Browse the repository at this point in the history
Helps to reduce some duplication on the ocis side
  • Loading branch information
rhafer committed Jun 24, 2024
1 parent 4df391c commit d60c81a
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
6 changes: 6 additions & 0 deletions changelog/unreleased/serviceuser-token-utils.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Enhancement: Add GetServiceUserToken() method to utils pkg

Added GetServiceUserToken() function to the utils pkg to easily get a reva
token for a service account.

https://github.com/cs3org/reva/pull/xxxx
16 changes: 13 additions & 3 deletions pkg/utils/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,30 @@ func GetServiceUserContext(serviceUserID string, gwc gateway.GatewayAPIClient, s

// GetServiceUserContextWithContext returns an authenticated context of the given service user
func GetServiceUserContextWithContext(ctx context.Context, gwc gateway.GatewayAPIClient, serviceUserID string, serviceUserSecret string) (context.Context, error) {
token, err := GetServiceUserToken(ctx, gwc, serviceUserID, serviceUserSecret)
if err != nil {
return nil, err
}

return metadata.AppendToOutgoingContext(ctx, ctxpkg.TokenHeader, token), nil
}

// GetServiceUserToken returns a reva authentication token for the given service user
func GetServiceUserToken(ctx context.Context, gwc gateway.GatewayAPIClient, serviceUserID string, serviceUserSecret string) (string, error) {
authRes, err := gwc.Authenticate(ctx, &gateway.AuthenticateRequest{
Type: "serviceaccounts",
ClientId: serviceUserID,
ClientSecret: serviceUserSecret,
})
if err != nil {
return nil, err
return "", err
}

if err := checkStatusCode("authenticating service user", authRes.GetStatus().GetMessage(), authRes.GetStatus().GetCode()); err != nil {
return nil, err
return "", err
}

return metadata.AppendToOutgoingContext(ctx, ctxpkg.TokenHeader, authRes.Token), nil
return authRes.Token, nil
}

// GetUser gets the specified user
Expand Down

0 comments on commit d60c81a

Please sign in to comment.