Documentation ¶
Index ¶
- Constants
- Variables
- func CreateJwkKey(privateKey interface{}) (jwk.Key, error)
- type Claims
- func (c Claims) GetAudience() (jwt.ClaimStrings, error)
- func (c Claims) GetClientID() (string, error)
- func (c Claims) GetDeviceID(deviceIDClaim string) (string, error)
- func (c Claims) GetEmail() (string, error)
- func (c Claims) GetExpirationTime() (*jwt.NumericDate, error)
- func (c Claims) GetID() (string, error)
- func (c Claims) GetIssuedAt() (*jwt.NumericDate, error)
- func (c Claims) GetIssuer() (string, error)
- func (c Claims) GetName() (string, error)
- func (c Claims) GetNotBefore() (*jwt.NumericDate, error)
- func (c Claims) GetOwner(ownerClaim string) (string, error)
- func (c Claims) GetScope() (jwt.ClaimStrings, error)
- func (c Claims) GetSubject() (string, error)
- func (c Claims) ValidateOwnerClaim(ownerClaim string, userID string) error
- type HTTPClient
- type KeyCache
- func (c *KeyCache) FetchKeys() error
- func (c *KeyCache) FetchKeysWithContext(ctx context.Context) error
- func (c *KeyCache) GetKey(token *jwt.Token) (interface{}, error)
- func (c *KeyCache) GetOrFetchKey(token *jwt.Token) (interface{}, error)
- func (c *KeyCache) GetOrFetchKeyWithContext(ctx context.Context, token *jwt.Token) (interface{}, error)
- func (c *KeyCache) LookupKey(token *jwt.Token) (jwk.Key, error)
- type KeyCacheI
- type MultiKeyCache
- type Option
- type ScopeClaims
- func (c *ScopeClaims) GetAudience() (jwt.ClaimStrings, error)
- func (c *ScopeClaims) GetExpirationTime() (*jwt.NumericDate, error)
- func (c *ScopeClaims) GetID() (string, error)
- func (c *ScopeClaims) GetIssuedAt() (*jwt.NumericDate, error)
- func (c *ScopeClaims) GetIssuer() (string, error)
- func (c *ScopeClaims) GetNotBefore() (*jwt.NumericDate, error)
- func (c *ScopeClaims) GetSubject() (string, error)
- func (c *ScopeClaims) Validate() error
- type TokenCache
- type TokenIssuerClient
- type Validator
Constants ¶
const ( ClaimExpirationTime = "exp" ClaimNotBefore = "nbf" ClaimIssuedAt = "iat" ClaimAudience = "aud" ClaimIssuer = "iss" ClaimSubject = "sub" ClaimScope = "scope" ClaimID = "jti" ClaimEmail = "email" ClaimClientID = "client_id" ClaimName = "name" )
const PlgdRequiredScope = "plgd:required:scope"
Variables ¶
var ( ErrMissingClaims = errors.New("missing claims") ErrMissingIssuer = errors.New("missing issuer") ErrMissingID = errors.New("missing jti") )
var ( ErrMissingToken = errors.New("missing token") ErrCannotParseToken = errors.New("could not parse token") ErrCannotVerifyTrust = errors.New("could not verify token trust") ErrBlackListedToken = errors.New("token is blacklisted") )
var ErrMissingRequiredScopes = errors.New("required scopes not found")
var ErrOwnerClaimInvalid = errors.New("owner claim is invalid")
Functions ¶
func CreateJwkKey ¶ added in v2.21.0
Types ¶
type Claims ¶
type Claims jwt.MapClaims
func ParseToken ¶
func (Claims) GetAudience ¶ added in v2.16.3
GetAudience returns the Audience ("aud") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetClientID ¶ added in v2.16.3
GetClientID returns the ClientID ("client_id") claim. If the claim does not exist, an empty string is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetDeviceID ¶ added in v2.16.3
GetDeviceID returns the DeviceID ("device_id") claim. If the claim does not exist, an empty string is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetEmail ¶ added in v2.16.3
GetEmail returns the Email ("email") claim. If the claim does not exist, an empty string is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetExpirationTime ¶ added in v2.16.3
GetExpirationTime returns the Expiration Time ("exp") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetID ¶ added in v2.16.3
GetID returns the ID ("jti") claim. If the claim does not exist, an empty string is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetIssuedAt ¶ added in v2.16.3
GetIssuedAt returns the Issued At ("iat") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetIssuer ¶ added in v2.16.3
GetIssuer returns the Issuer ("iss") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetName ¶ added in v2.16.3
GetName returns the Name ("n") claim. If the claim does not exist, an empty string is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetNotBefore ¶ added in v2.16.3
GetNotBefore returns the Not Before ("nbf") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetOwner ¶ added in v2.16.3
GetOwner returns the Owner ("owner") claim. If the claim does not exist, an empty string is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetScope ¶ added in v2.16.3
GetScope returns the Scope ("scope") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
func (Claims) GetSubject ¶ added in v2.16.3
GetSubject returns the Subject ("sub") claim. If the claim does not exist, nil is returned. If the claim has the wrong type, an error is returned.
type HTTPClient ¶ added in v2.23.0
func NewHTTPClient ¶ added in v2.23.0
func NewHTTPClient(client *http.Client, tokenEndpoint string) *HTTPClient
func (*HTTPClient) VerifyTokenByRequest ¶ added in v2.23.0
type KeyCache ¶
type KeyCache struct {
// contains filtered or unexported fields
}
func (*KeyCache) FetchKeysWithContext ¶
func (*KeyCache) GetOrFetchKey ¶
func (*KeyCache) GetOrFetchKeyWithContext ¶
type MultiKeyCache ¶ added in v2.21.0
type MultiKeyCache struct {
// contains filtered or unexported fields
}
func NewMultiKeyCache ¶ added in v2.21.0
func NewMultiKeyCache() *MultiKeyCache
func (*MultiKeyCache) Add ¶ added in v2.21.0
func (c *MultiKeyCache) Add(authority, url string, client *http.Client)
func (*MultiKeyCache) GetOrFetchKey ¶ added in v2.21.0
func (c *MultiKeyCache) GetOrFetchKey(token *jwt.Token) (interface{}, error)
func (*MultiKeyCache) GetOrFetchKeyWithContext ¶ added in v2.21.0
func (c *MultiKeyCache) GetOrFetchKeyWithContext(ctx context.Context, token *jwt.Token) (interface{}, error)
type Option ¶ added in v2.23.0
type Option interface {
// contains filtered or unexported methods
}
func WithTrustVerification ¶ added in v2.23.0
func WithTrustVerification(clients map[string]TokenIssuerClient, cacheExpiration time.Duration, stop <-chan struct{}) Option
type ScopeClaims ¶
type ScopeClaims Claims
func NewRegexpScopeClaims ¶
func NewRegexpScopeClaims(scope ...*regexp.Regexp) *ScopeClaims
func NewScopeClaims ¶
func NewScopeClaims(scope ...string) *ScopeClaims
func (*ScopeClaims) GetAudience ¶ added in v2.16.3
func (c *ScopeClaims) GetAudience() (jwt.ClaimStrings, error)
func (*ScopeClaims) GetExpirationTime ¶ added in v2.16.3
func (c *ScopeClaims) GetExpirationTime() (*jwt.NumericDate, error)
func (*ScopeClaims) GetID ¶ added in v2.23.0
func (c *ScopeClaims) GetID() (string, error)
func (*ScopeClaims) GetIssuedAt ¶ added in v2.16.3
func (c *ScopeClaims) GetIssuedAt() (*jwt.NumericDate, error)
func (*ScopeClaims) GetIssuer ¶ added in v2.16.3
func (c *ScopeClaims) GetIssuer() (string, error)
func (*ScopeClaims) GetNotBefore ¶ added in v2.16.3
func (c *ScopeClaims) GetNotBefore() (*jwt.NumericDate, error)
func (*ScopeClaims) GetSubject ¶ added in v2.16.3
func (c *ScopeClaims) GetSubject() (string, error)
func (*ScopeClaims) Validate ¶ added in v2.16.3
func (c *ScopeClaims) Validate() error
type TokenCache ¶ added in v2.23.0
type TokenCache struct {
// contains filtered or unexported fields
}
func NewTokenCache ¶ added in v2.23.0
func NewTokenCache(clients map[string]TokenIssuerClient, expiration time.Duration, logger log.Logger) *TokenCache
func (*TokenCache) CheckExpirations ¶ added in v2.23.0
func (t *TokenCache) CheckExpirations(now time.Time)
func (*TokenCache) VerifyTrust ¶ added in v2.23.0
func (t *TokenCache) VerifyTrust(ctx context.Context, issuer, token string, tokenClaims jwt.Claims) error
type TokenIssuerClient ¶ added in v2.23.0
type Validator ¶
type Validator struct {
// contains filtered or unexported fields
}