package authn import ( "net/http" "forge.cadoles.com/cadoles/bouncer/internal/store" "github.com/pkg/errors" ) var ( ErrUnauthorized = errors.New("unauthorized") ErrForbidden = errors.New("forbidden") ErrSkipRequest = errors.New("skip request") ) type Authenticator interface { Authenticate(w http.ResponseWriter, r *http.Request, layer *store.Layer) (*User, error) } type PreAuthentication interface { PreAuthentication(w http.ResponseWriter, r *http.Request, layer *store.Layer) error } type PostAuthentication interface { PostAuthentication(w http.ResponseWriter, r *http.Request, layer *store.Layer, user *User) error }