auth

package
v0.11.6-buildfix Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2025 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CookieOauthState        = "godoxy_oidc_state"
	CookieOauthToken        = "godoxy_oauth_token"
	CookieOauthSessionToken = "godoxy_session_token"
)
View Source
const (
	OIDCAuthInitPath = "/"
	OIDCPostAuthPath = "/auth/callback"
	OIDCLogoutPath   = "/auth/logout"
)

Variables

View Source
var (
	ErrMissingOAuthToken = gperr.New("missing oauth token")
	ErrInvalidOAuthToken = gperr.New("invalid oauth token")
)
View Source
var (
	ErrInvalidUsername = gperr.New("invalid username")
	ErrInvalidPassword = gperr.New("invalid password")
)
View Source
var (
	ErrMissingSessionToken = gperr.New("missing session token")
	ErrInvalidSessionToken = gperr.New("invalid session token")
	ErrUserNotAllowed      = gperr.New("user not allowed")
)
View Source
var (
	ErrRefreshTokenFailure = errors.New("failed to refresh token")
)

Functions

func AuthCheckHandler

func AuthCheckHandler(w http.ResponseWriter, r *http.Request)

func Initialize

func Initialize() error

Initialize sets up authentication providers.

func IsEnabled

func IsEnabled() bool

func IsFrontend added in v0.11.6

func IsFrontend(r *http.Request) bool

func IsOIDCEnabled

func IsOIDCEnabled() bool

func ProceedNext added in v0.11.6

func ProceedNext(w http.ResponseWriter, r *http.Request)

func RequireAuth

func RequireAuth(next http.HandlerFunc) http.HandlerFunc

func WriteBlockPage

func WriteBlockPage(w http.ResponseWriter, status int, error string, logoutURL string)

Types

type IDTokenClaims

type IDTokenClaims struct {
	Username string   `json:"preferred_username"`
	Groups   []string `json:"groups"`
}

type OIDCProvider

type OIDCProvider struct {
	// contains filtered or unexported fields
}

func NewOIDCProvider

func NewOIDCProvider(issuerURL, clientID, clientSecret string, allowedUsers, allowedGroups []string) (*OIDCProvider, error)

func NewOIDCProviderFromEnv

func NewOIDCProviderFromEnv() (*OIDCProvider, error)

NewOIDCProviderFromEnv creates a new OIDCProvider from environment variables.

func (*OIDCProvider) CheckToken

func (auth *OIDCProvider) CheckToken(r *http.Request) error

func (*OIDCProvider) HandleAuth

func (auth *OIDCProvider) HandleAuth(w http.ResponseWriter, r *http.Request)

func (*OIDCProvider) LoginHandler

func (auth *OIDCProvider) LoginHandler(w http.ResponseWriter, r *http.Request)

func (*OIDCProvider) LogoutHandler

func (auth *OIDCProvider) LogoutHandler(w http.ResponseWriter, r *http.Request)

func (*OIDCProvider) PostAuthCallbackHandler

func (auth *OIDCProvider) PostAuthCallbackHandler(w http.ResponseWriter, r *http.Request)

func (*OIDCProvider) SetAllowedGroups

func (auth *OIDCProvider) SetAllowedGroups(groups []string)

func (*OIDCProvider) SetAllowedUsers

func (auth *OIDCProvider) SetAllowedUsers(users []string)

func (*OIDCProvider) TryRefreshToken

func (auth *OIDCProvider) TryRefreshToken(ctx context.Context, sessionJWT string) (*refreshResult, error)

type Provider

type Provider interface {
	CheckToken(r *http.Request) error
	LoginHandler(w http.ResponseWriter, r *http.Request)
	PostAuthCallbackHandler(w http.ResponseWriter, r *http.Request)
	LogoutHandler(w http.ResponseWriter, r *http.Request)
}

func GetDefaultAuth

func GetDefaultAuth() Provider

type Session

type Session struct {
	SessionID sessionID `json:"session_id"`
	Username  string    `json:"username"`
	Groups    []string  `json:"groups"`
}

type UserPassAuth

type UserPassAuth struct {
	// contains filtered or unexported fields
}

func NewUserPassAuth

func NewUserPassAuth(username, password string, secret []byte, tokenTTL time.Duration) (*UserPassAuth, error)

func NewUserPassAuthFromEnv

func NewUserPassAuthFromEnv() (*UserPassAuth, error)

func (*UserPassAuth) CheckToken

func (auth *UserPassAuth) CheckToken(r *http.Request) error

func (*UserPassAuth) LoginHandler

func (auth *UserPassAuth) LoginHandler(w http.ResponseWriter, r *http.Request)

func (*UserPassAuth) LogoutHandler

func (auth *UserPassAuth) LogoutHandler(w http.ResponseWriter, r *http.Request)

func (*UserPassAuth) NewToken

func (auth *UserPassAuth) NewToken() (token string, err error)

func (*UserPassAuth) PostAuthCallbackHandler

func (auth *UserPassAuth) PostAuthCallbackHandler(w http.ResponseWriter, r *http.Request)

func (*UserPassAuth) TokenCookieName

func (auth *UserPassAuth) TokenCookieName() string

type UserPassClaims

type UserPassClaims struct {
	Username string `json:"username"`
	jwt.RegisteredClaims
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL