From bb9f9eaa6049e2357c66bb86e36aa0b9b0bc8088 Mon Sep 17 00:00:00 2001 From: apin Date: Thu, 9 Mar 2023 15:13:28 +0700 Subject: [PATCH] fix: iam mock subject not empty when it is non user token --- mockclient.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mockclient.go b/mockclient.go index 3195f29..bb10b6d 100644 --- a/mockclient.go +++ b/mockclient.go @@ -26,6 +26,7 @@ const ( MockForbidden = "forbidden" MockAudience = "http://example.com" MockSecret = "mocksecret" + ClientToken = "mock_token" ) // MockClient define mock oauth client config @@ -48,7 +49,7 @@ func (client *MockClient) ClientTokenGrant(opts ...Option) error { // ClientToken returns client access token func (client *MockClient) ClientToken(opts ...Option) string { - return "mock_token" + return ClientToken } // StartLocalValidation starts goroutines to refresh JWK and revocation list periodically @@ -85,6 +86,11 @@ func (client *MockClient) ValidateAndParseClaims(accessToken string, opts ...Opt claims.Audience = append(claims.Audience, MockAudience) + // non user token will has empty Subject + if accessToken == ClientToken { + claims.Subject = "" + } + switch accessToken { case MockUnauthorized: return nil, errUnauthorized @@ -105,9 +111,12 @@ func (client *MockClient) ValidateAndParseClaims(accessToken string, opts ...Opt // ValidatePermission validates if an access token has right for a specific permission // requiredPermission: permission to access resource, example: -// {Resource: "NAMESPACE:{namespace}:USER:{userId}", Action: 2} +// +// {Resource: "NAMESPACE:{namespace}:USER:{userId}", Action: 2} +// // permissionResources: resource string to replace the `{}` placeholder in -// `requiredPermission`, example: p["{namespace}"] = "accelbyte" +// +// `requiredPermission`, example: p["{namespace}"] = "accelbyte" func (client *MockClient) ValidatePermission(claims *JWTClaims, requiredPermission Permission, permissionResources map[string]string, opts ...Option) (bool, error) { if claims.Permissions[0].Resource == MockForbidden {