github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/itokens-payloads/utils.go (about) 1 /* 2 * Copyright (c) 2020-present unTill Pro, Ltd. 3 * @author Denis Gribanov 4 */ 5 6 package payloads 7 8 import ( 9 "fmt" 10 "net/http" 11 12 "github.com/voedger/voedger/pkg/istructs" 13 itokens "github.com/voedger/voedger/pkg/itokens" 14 coreutils "github.com/voedger/voedger/pkg/utils" 15 ) 16 17 func GetSystemPrincipalToken(itokens itokens.ITokens, appQName istructs.AppQName) (string, error) { 18 systemPrincipalToken, err := itokens.IssueToken(appQName, DefaultSystemPrincipalDuration, &systemPrincipalPayload) 19 if err != nil { 20 return "", fmt.Errorf("failed to issue system principal token: %w", err) 21 } 22 return systemPrincipalToken, nil 23 } 24 25 func GetSystemPrincipalTokenApp(appTokens istructs.IAppTokens) (string, error) { 26 systemPrincipalToken, err := appTokens.IssueToken(DefaultSystemPrincipalDuration, &systemPrincipalPayload) 27 if err != nil { 28 return "", fmt.Errorf("failed to issue system principal token: %w", err) 29 } 30 return systemPrincipalToken, nil 31 } 32 33 func GetPayloadRegistry(itokens itokens.ITokens, token string, payload interface{}) (gp istructs.GenericPayload, err error) { 34 if gp, err = itokens.ValidateToken(token, payload); err != nil { 35 err = coreutils.NewHTTPError(http.StatusUnauthorized, err) 36 } 37 return 38 } 39 40 func GetPrincipalPayload(appTokens istructs.IAppTokens, principalToken string) (principalPayload PrincipalPayload, err error) { 41 _, err = GetPayload(appTokens, principalToken, &principalPayload) 42 return 43 } 44 45 // nolint (gp is never used) 46 func GetPayload(appTokens istructs.IAppTokens, token string, payload interface{}) (gp istructs.GenericPayload, err error) { 47 if gp, err = appTokens.ValidateToken(token, payload); err != nil { 48 err = coreutils.NewHTTPError(http.StatusUnauthorized, err) 49 } 50 return 51 }