auth

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

pkg/auth/casbin.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func APIRateLimitMiddleware added in v0.5.0

func APIRateLimitMiddleware() gin.HandlerFunc

APIRateLimitMiddleware rate limiting middleware for general API requests

func AdminRequiredMiddleware added in v0.1.3

func AdminRequiredMiddleware() gin.HandlerFunc

AdminRequiredMiddleware admin privilege middleware

func AuditMiddleware added in v0.5.0

func AuditMiddleware(auditService interface{}) gin.HandlerFunc

AuditMiddleware creates middleware for auditing API requests

func GenerateToken added in v0.1.3

func GenerateToken(user *models.User) (string, time.Time, error)

GenerateToken generates JWT token

func GetCurrentUser added in v0.1.3

func GetCurrentUser(c *gin.Context) (uint, string, string, bool)

GetCurrentUser gets current user information from context

func InitCasbin added in v0.1.2

func InitCasbin(db *gorm.DB) (*casbin.Enforcer, error)

InitCasbin initializes RBAC permission control

func InitializeRateLimiter added in v0.5.0

func InitializeRateLimiter(config *configs.RateLimitConfig)

InitializeRateLimiter initializes the global rate limiter

func JWTAuthMiddleware added in v0.1.3

func JWTAuthMiddleware() gin.HandlerFunc

JWTAuthMiddleware JWT authentication middleware

func JWTAuthWithSessionMiddleware added in v0.5.0

func JWTAuthWithSessionMiddleware(securityService interface{}) gin.HandlerFunc

JWTAuthWithSessionMiddleware JWT authentication middleware with session validation

func LoginRateLimitMiddleware added in v0.5.0

func LoginRateLimitMiddleware() gin.HandlerFunc

LoginRateLimitMiddleware rate limiting middleware specifically for login attempts

func OptionalAuthMiddleware added in v0.1.3

func OptionalAuthMiddleware() gin.HandlerFunc

OptionalAuthMiddleware optional authentication middleware (does not require mandatory login)

func RateLimitMiddleware added in v0.5.0

func RateLimitMiddleware(requestType string) gin.HandlerFunc

RateLimitMiddleware creates a rate limiting middleware

Types

type CasbinBuilder added in v0.1.2

type CasbinBuilder struct {
	IgnorePaths []string
}

func NewCasbinBuilder added in v0.1.2

func NewCasbinBuilder() *CasbinBuilder

func (*CasbinBuilder) CasbinMiddleware added in v0.1.3

func (r *CasbinBuilder) CasbinMiddleware(e *casbin.Enforcer) gin.HandlerFunc

CasbinMiddleware returns a Gin middleware handler function

func (*CasbinBuilder) IgnorePath added in v0.1.2

func (r *CasbinBuilder) IgnorePath(path string) *CasbinBuilder

IgnorePath allows chained calls to add paths that need to be ignored

type JWTClaims added in v0.1.3

type JWTClaims struct {
	UserID   uint   `json:"user_id"`
	Username string `json:"username"`
	Role     string `json:"role"`
	jwt.RegisteredClaims
}

func ParseToken added in v0.1.3

func ParseToken(tokenString string) (*JWTClaims, error)

ParseToken parses JWT token

type RateLimiter added in v0.5.0

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

RateLimiter represents a rate limiter for API requests

func NewRateLimiter added in v0.5.0

func NewRateLimiter(config *configs.RateLimitConfig) *RateLimiter

NewRateLimiter creates a new rate limiter

func (*RateLimiter) IsAllowed added in v0.5.0

func (rl *RateLimiter) IsAllowed(ip string, requestType string) bool

IsAllowed checks if a request from the given IP is allowed

Jump to

Keyboard shortcuts

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