mirror of
https://github.com/pomerium/pomerium.git
synced 2025-06-02 02:42:57 +02:00
CookieStore's ClearSession now properly clears the user session cookie by setting MaxAge to -1. internal/sessions: move encoder interface to encoding package, and rename to MarshalUnmarshaler. internal/encoding: move mock to own package authenticate: use INFO log level for authZ error. Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com>
39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
package sessions // import "github.com/pomerium/pomerium/internal/sessions"
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
)
|
|
|
|
var (
|
|
// ErrNoSessionFound is the error for when no session is found.
|
|
ErrNoSessionFound = errors.New("internal/sessions: session is not found")
|
|
|
|
// ErrMalformed is the error for when a session is found but is malformed.
|
|
ErrMalformed = errors.New("internal/sessions: session is malformed")
|
|
|
|
// ErrNotValidYet indicates that token is used before time indicated in nbf claim.
|
|
ErrNotValidYet = errors.New("internal/sessions: validation failed, token not valid yet (nbf)")
|
|
|
|
// ErrExpired indicates that token is used after expiry time indicated in exp claim.
|
|
ErrExpired = errors.New("internal/sessions: validation failed, token is expired (exp)")
|
|
|
|
// ErrIssuedInTheFuture indicates that the iat field is in the future.
|
|
ErrIssuedInTheFuture = errors.New("internal/sessions: validation field, token issued in the future (iat)")
|
|
|
|
// ErrInvalidAudience indicated invalid aud claim.
|
|
ErrInvalidAudience = errors.New("internal/sessions: validation failed, invalid audience claim (aud)")
|
|
)
|
|
|
|
// SessionStore has the functions for setting, getting, and clearing the Session cookie
|
|
type SessionStore interface {
|
|
ClearSession(http.ResponseWriter, *http.Request)
|
|
SessionLoader
|
|
SaveSession(http.ResponseWriter, *http.Request, interface{}) error
|
|
}
|
|
|
|
// SessionLoader is implemented by any struct that loads a pomerium session
|
|
// given a request, and returns a user state.
|
|
type SessionLoader interface {
|
|
LoadSession(*http.Request) (*State, error)
|
|
}
|