Documentation
¶
Overview ¶
Package authzguard 版本缓存
Package authzguard PEP SDK - 权限检查客户端 AuthzGuard 为业务服务提供简单易用的权限检查 API
Package authzguard 中间件
Index ¶
- func ExtractBearerToken(c *gin.Context) string
- type AuthMiddleware
- type AuthzGuard
- func (g *AuthzGuard) BatchCheckPermissions(ctx context.Context, userID string, tenantID string, permissions []Permission) (map[string]bool, error)
- func (g *AuthzGuard) CheckPermission(ctx context.Context, userID string, tenantID string, resource string, ...) (bool, error)
- func (g *AuthzGuard) CheckServicePermission(ctx context.Context, serviceID string, tenantID string, resource string, ...) (bool, error)
- func (g *AuthzGuard) GetCachedVersion(tenantID string) (int64, bool)
- func (g *AuthzGuard) GetResourceDisplayName(key string) string
- func (g *AuthzGuard) RegisterResource(key string, displayName string)
- func (g *AuthzGuard) SetCachedVersion(tenantID string, version int64)
- type Config
- type Enforcer
- type MiddlewareConfig
- type Permission
- type PermissionError
- type VersionCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractBearerToken ¶
ExtractBearerToken 从请求头中提取 Bearer Token
Types ¶
type AuthMiddleware ¶
type AuthMiddleware struct {
// contains filtered or unexported fields
}
AuthMiddleware 认证中间件配置
func NewAuthMiddleware ¶
func NewAuthMiddleware(config MiddlewareConfig) *AuthMiddleware
NewAuthMiddleware 创建认证中间件
func (*AuthMiddleware) RequireAllPermissions ¶
func (m *AuthMiddleware) RequireAllPermissions(permissions []Permission) gin.HandlerFunc
RequireAllPermissions 要求所有权限的中间件
func (*AuthMiddleware) RequireAnyPermission ¶
func (m *AuthMiddleware) RequireAnyPermission(permissions []Permission) gin.HandlerFunc
RequireAnyPermission 要求任意一个权限的中间件
func (*AuthMiddleware) RequirePermission ¶
func (m *AuthMiddleware) RequirePermission(resource, action string) gin.HandlerFunc
RequirePermission 要求特定权限的中间件
用法:
router.GET("/users", authMiddleware.RequirePermission("user", "read"), handler)
type AuthzGuard ¶
type AuthzGuard struct {
// contains filtered or unexported fields
}
AuthzGuard 权限检查客户端
func NewAuthzGuard ¶
func NewAuthzGuard(config Config) (*AuthzGuard, error)
NewAuthzGuard 创建 AuthzGuard 实例
func (*AuthzGuard) BatchCheckPermissions ¶
func (g *AuthzGuard) BatchCheckPermissions( ctx context.Context, userID string, tenantID string, permissions []Permission, ) (map[string]bool, error)
BatchCheckPermissions 批量检查权限
参数:
- ctx: 上下文
- userID: 用户ID
- tenantID: 租户ID
- permissions: 权限检查列表 [{resource, action}, ...]
返回:
- map[string]bool: 权限检查结果 {"resource:action": true/false}
- error: 错误信息
func (*AuthzGuard) CheckPermission ¶
func (g *AuthzGuard) CheckPermission( ctx context.Context, userID string, tenantID string, resource string, action string, ) (bool, error)
CheckPermission 检查用户是否有权限执行操作
参数:
- ctx: 上下文
- userID: 用户ID
- tenantID: 租户ID
- resource: 资源标识 (例如: "user", "order")
- action: 操作 (例如: "read", "write", "delete")
返回:
- bool: 是否有权限
- error: 错误信息
func (*AuthzGuard) CheckServicePermission ¶
func (g *AuthzGuard) CheckServicePermission( ctx context.Context, serviceID string, tenantID string, resource string, action string, ) (bool, error)
CheckServicePermission 检查服务是否有权限执行操作
参数:
- ctx: 上下文
- serviceID: 服务ID
- tenantID: 租户ID
- resource: 资源标识
- action: 操作
func (*AuthzGuard) GetCachedVersion ¶
func (g *AuthzGuard) GetCachedVersion(tenantID string) (int64, bool)
GetCachedVersion 获取缓存的版本号
func (*AuthzGuard) GetResourceDisplayName ¶
func (g *AuthzGuard) GetResourceDisplayName(key string) string
GetResourceDisplayName 获取资源显示名称
func (*AuthzGuard) RegisterResource ¶
func (g *AuthzGuard) RegisterResource(key string, displayName string)
RegisterResource 注册资源映射(用于友好的错误提示)
func (*AuthzGuard) SetCachedVersion ¶
func (g *AuthzGuard) SetCachedVersion(tenantID string, version int64)
SetCachedVersion 设置缓存的版本号
type Config ¶
type Config struct {
Enforcer Enforcer // Casbin Enforcer
RedisClient *redis.Client // Redis 客户端(用于监听策略变更)
CacheTTL time.Duration // 缓存过期时间
VersionTopic string // 策略版本变更主题
}
Config AuthzGuard 配置
type MiddlewareConfig ¶
type MiddlewareConfig struct {
Guard *AuthzGuard
GetUserID func(*gin.Context) string
GetTenantID func(*gin.Context) string
ErrorHandler func(*gin.Context, error)
SkipPaths []string // 跳过认证的路径列表
}
MiddlewareConfig 中间件配置
type Permission ¶
Permission 权限定义
type PermissionError ¶
PermissionError 权限错误
func (*PermissionError) Error ¶
func (e *PermissionError) Error() string
type VersionCache ¶
type VersionCache struct {
// contains filtered or unexported fields
}
VersionCache 策略版本缓存