Documentation ¶
Index ¶
- func MaybeBeginTx(ctx context.Context, storage interface{}) (context.Context, error)
- func MaybeCommitTx(ctx context.Context, storage interface{}) error
- func MaybeRollbackTx(ctx context.Context, storage interface{}) error
- type MemoryStore
- func (s *MemoryStore) Authenticate(_ context.Context, name string, secret string) error
- func (s *MemoryStore) ClientAssertionJWTValid(_ context.Context, jti string) error
- func (s *MemoryStore) CreateAccessTokenSession(_ context.Context, signature string, req fosite.Requester) error
- func (s *MemoryStore) CreateAuthorizeCodeSession(_ context.Context, code string, req fosite.Requester) error
- func (s *MemoryStore) CreateOpenIDConnectSession(_ context.Context, authorizeCode string, requester fosite.Requester) error
- func (s *MemoryStore) CreatePKCERequestSession(_ context.Context, code string, req fosite.Requester) error
- func (s *MemoryStore) CreateRefreshTokenSession(_ context.Context, signature string, req fosite.Requester) error
- func (s *MemoryStore) DeleteAccessTokenSession(_ context.Context, signature string) error
- func (s *MemoryStore) DeleteOpenIDConnectSession(_ context.Context, authorizeCode string) error
- func (s *MemoryStore) DeletePKCERequestSession(_ context.Context, code string) error
- func (s *MemoryStore) DeleteRefreshTokenSession(_ context.Context, signature string) error
- func (s *MemoryStore) GetAccessTokenSession(_ context.Context, signature string, _ fosite.Session) (fosite.Requester, error)
- func (s *MemoryStore) GetAuthorizeCodeSession(_ context.Context, code string, _ fosite.Session) (fosite.Requester, error)
- func (s *MemoryStore) GetClient(_ context.Context, id string) (fosite.Client, error)
- func (s *MemoryStore) GetOpenIDConnectSession(_ context.Context, authorizeCode string, requester fosite.Requester) (fosite.Requester, error)
- func (s *MemoryStore) GetPKCERequestSession(_ context.Context, code string, _ fosite.Session) (fosite.Requester, error)
- func (s *MemoryStore) GetRefreshTokenSession(_ context.Context, signature string, _ fosite.Session) (fosite.Requester, error)
- func (s *MemoryStore) InvalidateAuthorizeCodeSession(ctx context.Context, code string) error
- func (s *MemoryStore) RevokeAccessToken(ctx context.Context, requestID string) error
- func (s *MemoryStore) RevokeRefreshToken(ctx context.Context, requestID string) error
- func (s *MemoryStore) SetClientAssertionJWT(_ context.Context, jti string, exp time.Time) error
- type MemoryUserRelation
- type StoreAuthorizeCode
- type Transactional
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MaybeBeginTx ¶ added in v0.29.0
MaybeBeginTx is a helper function that can be used to initiate a transaction if the supplied storage implements the `Transactional` interface.
func MaybeCommitTx ¶ added in v0.29.0
MaybeCommitTx is a helper function that can be used to commit a transaction if the supplied storage implements the `Transactional` interface.
func MaybeRollbackTx ¶ added in v0.29.0
MaybeRollbackTx is a helper function that can be used to rollback a transaction if the supplied storage implements the `Transactional` interface.
Types ¶
type MemoryStore ¶
type MemoryStore struct { Clients map[string]fosite.Client AuthorizeCodes map[string]StoreAuthorizeCode IDSessions map[string]fosite.Requester AccessTokens map[string]fosite.Requester RefreshTokens map[string]fosite.Requester PKCES map[string]fosite.Requester Users map[string]MemoryUserRelation BlacklistedJTIs map[string]time.Time // In-memory request ID to token signatures AccessTokenRequestIDs map[string]string RefreshTokenRequestIDs map[string]string // contains filtered or unexported fields }
func NewExampleStore ¶
func NewExampleStore() *MemoryStore
func NewMemoryStore ¶
func NewMemoryStore() *MemoryStore
func (*MemoryStore) Authenticate ¶
func (*MemoryStore) ClientAssertionJWTValid ¶ added in v0.31.0
func (s *MemoryStore) ClientAssertionJWTValid(_ context.Context, jti string) error
func (*MemoryStore) CreateAccessTokenSession ¶
func (*MemoryStore) CreateAuthorizeCodeSession ¶
func (*MemoryStore) CreateOpenIDConnectSession ¶
func (*MemoryStore) CreatePKCERequestSession ¶ added in v0.17.0
func (*MemoryStore) CreateRefreshTokenSession ¶
func (*MemoryStore) DeleteAccessTokenSession ¶
func (s *MemoryStore) DeleteAccessTokenSession(_ context.Context, signature string) error
func (*MemoryStore) DeleteOpenIDConnectSession ¶
func (s *MemoryStore) DeleteOpenIDConnectSession(_ context.Context, authorizeCode string) error
func (*MemoryStore) DeletePKCERequestSession ¶ added in v0.17.0
func (s *MemoryStore) DeletePKCERequestSession(_ context.Context, code string) error
func (*MemoryStore) DeleteRefreshTokenSession ¶
func (s *MemoryStore) DeleteRefreshTokenSession(_ context.Context, signature string) error
func (*MemoryStore) GetAccessTokenSession ¶
func (*MemoryStore) GetAuthorizeCodeSession ¶
func (*MemoryStore) GetOpenIDConnectSession ¶
func (*MemoryStore) GetPKCERequestSession ¶ added in v0.17.0
func (*MemoryStore) GetRefreshTokenSession ¶
func (*MemoryStore) InvalidateAuthorizeCodeSession ¶ added in v0.20.0
func (s *MemoryStore) InvalidateAuthorizeCodeSession(ctx context.Context, code string) error
func (*MemoryStore) RevokeAccessToken ¶
func (s *MemoryStore) RevokeAccessToken(ctx context.Context, requestID string) error
func (*MemoryStore) RevokeRefreshToken ¶
func (s *MemoryStore) RevokeRefreshToken(ctx context.Context, requestID string) error
func (*MemoryStore) SetClientAssertionJWT ¶ added in v0.31.0
type MemoryUserRelation ¶
type StoreAuthorizeCode ¶ added in v0.20.0
type Transactional ¶ added in v0.29.0
type Transactional interface { BeginTX(ctx context.Context) (context.Context, error) Commit(ctx context.Context) error Rollback(ctx context.Context) error }
A storage provider that has support for transactions should implement this interface to ensure atomicity for certain flows that require transactional semantics. Fosite will call these methods (when atomicity is required) if and only if the storage provider has implemented `Transactional`. It is expected that the storage provider will examine context for an existing transaction each time a database operation is to be performed.
An implementation of `BeginTX` should attempt to initiate a new transaction and store that under a unique key in the context that can be accessible by `Commit` and `Rollback`. The "transactional aware" context will then be returned for further propagation, eventually to be consumed by `Commit` or `Rollback` to finish the transaction.
Implementations for `Commit` & `Rollback` should look for the transaction object inside the supplied context using the same key used by `BeginTX`. If these methods have been called, it is expected that a txn object should be available in the provided context.