Documentation
ΒΆ
Index ΒΆ
- Variables
- type Auth
- func (a *Auth) Authorize(ctx context.Context, request *authz.AuthorizationRequest) (*authz.AuthorizationDecision, error)
- func (a *Auth) CheckPermission(ctx context.Context, identity *subject.IdentityContext, permission string) (bool, error)
- func (a *Auth) CheckRole(ctx context.Context, identity *subject.IdentityContext, role string) (bool, error)
- func (a *Auth) GetAuthorizer() authz.Authorizer
- func (a *Auth) Login(ctx context.Context, request *LoginRequest) (*LoginResponse, error)
- func (a *Auth) RegisterAuthenticator(authType string, authenticator credential.Authenticator)
- func (a *Auth) SetAuthorizer(authorizer authz.Authorizer)
- func (a *Auth) SetIdentityContextBuilder(builder subject.IdentityContextBuilder)
- func (a *Auth) SetSubjectResolver(resolver subject.SubjectResolver)
- func (a *Auth) SetTokenManager(manager token.TokenManager)
- func (a *Auth) Verify(ctx context.Context, request *VerifyRequest) (*VerifyResponse, error)
- type Builder
- func (b *Builder) AddMetadata(key string, value interface{}) *Builder
- func (b *Builder) Build() *Auth
- func (b *Builder) DisableRefreshToken() *Builder
- func (b *Builder) DisableSessionManagement() *Builder
- func (b *Builder) EnableRefreshToken() *Builder
- func (b *Builder) EnableSessionManagement() *Builder
- func (b *Builder) SetDefaultAuthenticator(authType string) *Builder
- func (b *Builder) WithAuthenticator(authType string, authenticator credential.Authenticator) *Builder
- func (b *Builder) WithAuthorizer(authorizer authz.Authorizer) *Builder
- func (b *Builder) WithConfig(config *Config) *Builder
- func (b *Builder) WithIdentityContextBuilder(builder subject.IdentityContextBuilder) *Builder
- func (b *Builder) WithSubjectResolver(resolver subject.SubjectResolver) *Builder
- func (b *Builder) WithTokenManager(manager token.TokenManager) *Builder
- type Config
- type LoginRequest
- type LoginResponse
- type VerifyRequest
- type VerifyResponse
Constants ΒΆ
This section is empty.
Variables ΒΆ
var ( ErrNoAuthenticator = errors.New("no authenticator configured") ErrNoTokenManager = errors.New("no token manager configured") ErrNoSubjectResolver = errors.New("no subject resolver configured") ErrNoContextBuilder = errors.New("no identity context builder configured") ErrNoAuthorizer = errors.New("no authorizer configured") ErrAuthenticationFailed = errors.New("authentication failed") ErrTokenGenerationFailed = errors.New("token generation failed") ErrSubjectResolutionFailed = errors.New("subject resolution failed") ErrAuthorizationFailed = errors.New("authorization check failed") )
Functions ΒΆ
This section is empty.
Types ΒΆ
type Auth ΒΆ
type Auth struct {
// contains filtered or unexported fields
}
Auth is the main runtime object for Lokstra Auth framework It orchestrates all 4 layers and provides a unified API
func (*Auth) Authorize ΒΆ
func (a *Auth) Authorize(ctx context.Context, request *authz.AuthorizationRequest) (*authz.AuthorizationDecision, error)
Authorize checks if a subject is authorized to perform an action on a resource Layer 4
func (*Auth) CheckPermission ΒΆ
func (a *Auth) CheckPermission(ctx context.Context, identity *subject.IdentityContext, permission string) (bool, error)
CheckPermission is a convenience method to check a simple permission
func (*Auth) CheckRole ΒΆ
func (a *Auth) CheckRole(ctx context.Context, identity *subject.IdentityContext, role string) (bool, error)
CheckRole is a convenience method to check if identity has a role
func (*Auth) GetAuthorizer ΒΆ
func (a *Auth) GetAuthorizer() authz.Authorizer
GetAuthorizer returns the configured authorizer
func (*Auth) Login ΒΆ
func (a *Auth) Login(ctx context.Context, request *LoginRequest) (*LoginResponse, error)
Login performs the complete authentication flow Layer 1 -> Layer 2 -> Layer 3
func (*Auth) RegisterAuthenticator ΒΆ
func (a *Auth) RegisterAuthenticator(authType string, authenticator credential.Authenticator)
RegisterAuthenticator registers an authenticator for a specific type
func (*Auth) SetAuthorizer ΒΆ
func (a *Auth) SetAuthorizer(authorizer authz.Authorizer)
SetAuthorizer sets the authorizer
func (*Auth) SetIdentityContextBuilder ΒΆ
func (a *Auth) SetIdentityContextBuilder(builder subject.IdentityContextBuilder)
SetIdentityContextBuilder sets the identity context builder
func (*Auth) SetSubjectResolver ΒΆ
func (a *Auth) SetSubjectResolver(resolver subject.SubjectResolver)
SetSubjectResolver sets the subject resolver
func (*Auth) SetTokenManager ΒΆ
func (a *Auth) SetTokenManager(manager token.TokenManager)
SetTokenManager sets the token manager
func (*Auth) Verify ΒΆ
func (a *Auth) Verify(ctx context.Context, request *VerifyRequest) (*VerifyResponse, error)
Verify verifies a token and optionally builds identity context Layer 2 -> Layer 3
type Builder ΒΆ
type Builder struct {
// contains filtered or unexported fields
}
Builder provides a fluent API for building Auth runtime
func (*Builder) AddMetadata ΒΆ
AddMetadata adds metadata to the configuration
func (*Builder) DisableRefreshToken ΒΆ
DisableRefreshToken disables refresh token generation
func (*Builder) DisableSessionManagement ΒΆ
DisableSessionManagement disables session management
func (*Builder) EnableRefreshToken ΒΆ
EnableRefreshToken enables refresh token generation
func (*Builder) EnableSessionManagement ΒΆ
EnableSessionManagement enables session management
func (*Builder) SetDefaultAuthenticator ΒΆ
SetDefaultAuthenticator sets the default authenticator type
func (*Builder) WithAuthenticator ΒΆ
func (b *Builder) WithAuthenticator(authType string, authenticator credential.Authenticator) *Builder
WithAuthenticator registers an authenticator
func (*Builder) WithAuthorizer ΒΆ
func (b *Builder) WithAuthorizer(authorizer authz.Authorizer) *Builder
WithAuthorizer sets the authorizer
func (*Builder) WithConfig ΒΆ
WithConfig sets a custom configuration
func (*Builder) WithIdentityContextBuilder ΒΆ
func (b *Builder) WithIdentityContextBuilder(builder subject.IdentityContextBuilder) *Builder
WithIdentityContextBuilder sets the identity context builder
func (*Builder) WithSubjectResolver ΒΆ
func (b *Builder) WithSubjectResolver(resolver subject.SubjectResolver) *Builder
WithSubjectResolver sets the subject resolver
func (*Builder) WithTokenManager ΒΆ
func (b *Builder) WithTokenManager(manager token.TokenManager) *Builder
WithTokenManager sets the token manager
type Config ΒΆ
type Config struct {
// DefaultAuthenticatorType is the default authenticator to use
DefaultAuthenticatorType string
// IssueRefreshToken indicates whether to issue refresh tokens
IssueRefreshToken bool
// SessionManagement indicates whether to manage sessions
SessionManagement bool
// Metadata contains additional runtime metadata
Metadata map[string]any
}
Config holds the configuration for Auth runtime
type LoginRequest ΒΆ
type LoginRequest struct {
// Credentials contains the credentials to authenticate
Credentials credential.Credentials
// Metadata contains additional request metadata
Metadata map[string]any
}
LoginRequest represents a login request
type LoginResponse ΒΆ
type LoginResponse struct {
// AccessToken is the issued access token
AccessToken *token.Token
// RefreshToken is the issued refresh token (if enabled)
RefreshToken *token.Token
// Identity is the resolved identity context
Identity *subject.IdentityContext
// Metadata contains additional response metadata
Metadata map[string]any
}
LoginResponse represents a login response
type VerifyRequest ΒΆ
type VerifyRequest struct {
// Token is the token to verify
Token string
// BuildIdentityContext indicates whether to build full identity context
BuildIdentityContext bool
// Metadata contains additional request metadata
Metadata map[string]any
}
VerifyRequest represents a token verification request
type VerifyResponse ΒΆ
type VerifyResponse struct {
// Valid indicates whether the token is valid
Valid bool
// Claims contains the extracted claims
Claims token.Claims
// Identity is the resolved identity context (if requested)
Identity *subject.IdentityContext
// Metadata contains additional response metadata
Metadata map[string]any
}
VerifyResponse represents a token verification response
Directories
ΒΆ
| Path | Synopsis |
|---|---|
|
examples
|
|
|
01_credential/01_basic
command
|
|
|
01_credential/02_multi_auth
command
|
|
|
01_credential/03_oauth2
command
|
|
|
01_credential/04_passwordless
command
|
|
|
01_credential/05_apikey
command
|
|
|
01_credential/06_passkey
command
|
|
|
02_token/01_jwt
command
|
|
|
02_token/02_simple
command
|
|
|
02_token/03_store
command
|
|
|
03_subject/01_simple
command
|
|
|
03_subject/02_enriched
command
|
|
|
03_subject/03_cached_store
command
|
|
|
04_authz/01_rbac
command
|
|
|
04_authz/02_abac
command
|
|
|
04_authz/03_acl
command
|
|
|
complete/01_basic_flow
command
|
|
|
complete/02_multi_auth
command
|
|
|
middleware
command
|
|