authentication

package
v2.0.3-0...-34c6bb6 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package authentication implements authentication mechanisms and routes for secure API access.

Index

Constants

View Source
const (
	AuthNone = "none"
	AuthJWT  = "jwt"
)
View Source
const (
	JWTContextKey = "jwt"
)

Variables

View Source
var (
	ErrJWTInvalidClaims = echo.NewHTTPError(http.StatusUnauthorized, "invalid jwt claims")
	ErrInvalidJWT       = echo.NewHTTPError(http.StatusUnauthorized, "token is invalid")
)

Errors

View Source
var DefaultJWTDuration time.Duration

Functions

func AddAuthentication

func AddAuthentication(
	apiRoot echoswagger.ApiRoot,
	userManager *users.UserManager,
	nodeIdentityProvider registry.NodeIdentityProvider,
	authConfig AuthConfiguration,
	mocker interfaces.Mocker,
) echo.MiddlewareFunc

func GetNoneAuthMiddleware

func GetNoneAuthMiddleware() echo.MiddlewareFunc

func ValidatePermissions

func ValidatePermissions(permissions []string) func(next echo.HandlerFunc) echo.HandlerFunc

Types

type AuthConfiguration

type AuthConfiguration struct {
	Scheme string `default:"ip" usage:"selects which authentication to choose"`

	JWTConfig JWTAuthConfiguration `name:"jwt" usage:"defines the jwt configuration"`
}

type AuthContext

type AuthContext struct {
	echo.Context
	// contains filtered or unexported fields
}

func (*AuthContext) Name

func (a *AuthContext) Name() string

func (*AuthContext) Scheme

func (a *AuthContext) Scheme() string

type AuthHandler

type AuthHandler struct {
	Jwt         *JWTAuth
	UserManager *users.UserManager
}

func (*AuthHandler) JWTLoginHandler

func (a *AuthHandler) JWTLoginHandler(c echo.Context) error

type JWTAuth

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

func GetJWTAuthMiddleware

func GetJWTAuthMiddleware(
	config JWTAuthConfiguration,
	nodeIDKeypair *cryptolib.KeyPair,
	userManager *users.UserManager,
) (*JWTAuth, echo.MiddlewareFunc)

func NewJWTAuth

func NewJWTAuth(duration time.Duration, nodeIDKeypair *cryptolib.KeyPair) *JWTAuth

func (*JWTAuth) IssueJWT

func (j *JWTAuth) IssueJWT(username string, claims *WaspClaims) (string, error)

type JWTAuthConfiguration

type JWTAuthConfiguration struct {
	Duration time.Duration `default:"24h" usage:"jwt token lifetime"`
}

type ValidationError

type ValidationError struct {
	MissingPermission string `json:"missingPermission" swagger:"required"`
	Error             string `json:"error" swagger:"required"`
}

type WaspClaims

type WaspClaims struct {
	jwt.RegisteredClaims
	Permissions map[string]struct{} `json:"permissions"`
}

func (*WaspClaims) HasPermission

func (c *WaspClaims) HasPermission(permission string) bool

func (*WaspClaims) VerifySubject

func (c *WaspClaims) VerifySubject(expected string) bool

type WebAPI

type WebAPI interface {
	GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	Use(middleware ...echo.MiddlewareFunc)
}

Directories

Path Synopsis
Package shared contains common utilities and components shared across authentication modules.
Package shared contains common utilities and components shared across authentication modules.
permissions
Package permissions provides functionality for managing and verifying user permissions.
Package permissions provides functionality for managing and verifying user permissions.

Jump to

Keyboard shortcuts

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