Documentation
¶
Index ¶
- func CreateClientTLSConfig(certFile, keyFile, caFile string, insecureSkipVerify bool) (*tls.Config, error)
- type AuthConfig
- type AuthManager
- func (am *AuthManager) AddToken(token string, role Role, timeout time.Duration)
- func (am *AuthManager) AuthMiddleware(permission Permission) func(forge.Context) error
- func (am *AuthManager) Authenticate(ctx context.Context, token string) (*TokenInfo, error)
- func (am *AuthManager) AuthorizeRequest(ctx context.Context, token string, permission Permission) error
- func (am *AuthManager) GetTokenInfo(token string) (*TokenInfo, error)
- func (am *AuthManager) IsEnabled() bool
- func (am *AuthManager) ListTokens() []TokenInfo
- func (am *AuthManager) RemoveToken(token string)
- func (am *AuthManager) RevokeExpiredTokens() int
- func (am *AuthManager) ValidateToken(provided, expected string) bool
- type Permission
- type Role
- type TLSConfig
- type TLSManager
- type TokenInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AuthConfig ¶
type AuthConfig struct {
Enabled bool
TokenTimeout time.Duration
AdminTokens []string
ReadTokens []string
WriteTokens []string
RequireAuth bool
}
AuthConfig contains authentication configuration
type AuthManager ¶
type AuthManager struct {
// contains filtered or unexported fields
}
AuthManager manages authentication and authorization
func NewAuthManager ¶
func NewAuthManager(config AuthConfig, logger forge.Logger) *AuthManager
NewAuthManager creates a new authentication manager
func (*AuthManager) AddToken ¶
func (am *AuthManager) AddToken(token string, role Role, timeout time.Duration)
AddToken dynamically adds a token
func (*AuthManager) AuthMiddleware ¶
func (am *AuthManager) AuthMiddleware(permission Permission) func(forge.Context) error
AuthMiddleware returns a middleware that enforces authentication
func (*AuthManager) Authenticate ¶
Authenticate authenticates a token
func (*AuthManager) AuthorizeRequest ¶
func (am *AuthManager) AuthorizeRequest(ctx context.Context, token string, permission Permission) error
AuthorizeRequest checks if a token has permission for a request
func (*AuthManager) GetTokenInfo ¶
func (am *AuthManager) GetTokenInfo(token string) (*TokenInfo, error)
GetTokenInfo returns information about a token
func (*AuthManager) IsEnabled ¶
func (am *AuthManager) IsEnabled() bool
IsEnabled returns true if authentication is enabled
func (*AuthManager) ListTokens ¶
func (am *AuthManager) ListTokens() []TokenInfo
ListTokens returns all active tokens (masked)
func (*AuthManager) RemoveToken ¶
func (am *AuthManager) RemoveToken(token string)
RemoveToken removes a token
func (*AuthManager) RevokeExpiredTokens ¶
func (am *AuthManager) RevokeExpiredTokens() int
RevokeExpiredTokens removes expired tokens
func (*AuthManager) ValidateToken ¶
func (am *AuthManager) ValidateToken(provided, expected string) bool
ValidateToken validates a token using constant-time comparison
type Permission ¶
type Permission string
Permission represents a permission type
const ( // PermissionRead allows read operations PermissionRead Permission = "read" // PermissionWrite allows write operations PermissionWrite Permission = "write" // PermissionAdmin allows admin operations PermissionAdmin Permission = "admin" )
type TLSConfig ¶
type TLSConfig struct {
Enabled bool
CertFile string
KeyFile string
CAFile string
ClientAuthRequired bool
InsecureSkipVerify bool
MinVersion uint16
MaxVersion uint16
CipherSuites []uint16
}
TLSConfig contains TLS configuration
func DefaultSecureTLSConfig ¶
func DefaultSecureTLSConfig() TLSConfig
DefaultSecureTLSConfig returns a secure default TLS configuration
type TLSManager ¶
type TLSManager struct {
// contains filtered or unexported fields
}
TLSManager manages TLS configuration
func NewTLSManager ¶
func NewTLSManager(config TLSConfig, logger forge.Logger) (*TLSManager, error)
NewTLSManager creates a new TLS manager
func (*TLSManager) GetTLSConfig ¶
func (tm *TLSManager) GetTLSConfig() *tls.Config
GetTLSConfig returns the TLS configuration
func (*TLSManager) IsEnabled ¶
func (tm *TLSManager) IsEnabled() bool
IsEnabled returns true if TLS is enabled
func (*TLSManager) IsMTLSEnabled ¶
func (tm *TLSManager) IsMTLSEnabled() bool
IsMTLSEnabled returns true if mTLS is enabled
func (*TLSManager) VerifyPeerCertificate ¶
func (tm *TLSManager) VerifyPeerCertificate(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error
VerifyPeerCertificate verifies a peer certificate