Documentation
¶
Index ¶
- Variables
- func AuthorizationMiddleware(authorizer *RBACAuthorizer, resource Resource, permission Permission) grpc.UnaryServerInterceptor
- type Permission
- type RBACAuthorizer
- func (a *RBACAuthorizer) AddRole(role *Role)
- func (a *RBACAuthorizer) AuthorizeByRole(ctx context.Context, roleName string, resource Resource, permission Permission) error
- func (a *RBACAuthorizer) CreatePermission(resource Resource, permission Permission) Permission
- func (a *RBACAuthorizer) GetAllRoles() []*Role
- func (a *RBACAuthorizer) GetRole(roleName string) (*Role, error)
- func (a *RBACAuthorizer) MapMethodToPermission(method string, resource Resource, permission Permission)
- func (a *RBACAuthorizer) MapServiceToResource(serviceName string, resource Resource)
- func (a *RBACAuthorizer) ParseResourcePermission(perm Permission) (Resource, Permission, error)
- func (a *RBACAuthorizer) RemoveRole(roleName string)
- func (a *RBACAuthorizer) SetupDefaultRoles()
- func (a *RBACAuthorizer) StreamServerInterceptor() grpc.StreamServerInterceptor
- func (a *RBACAuthorizer) UnaryServerInterceptor() grpc.UnaryServerInterceptor
- type Resource
- type Role
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrPermissionDenied = errors.New("权限被拒绝") ErrRoleNotFound = errors.New("角色不存在") ErrInvalidPermission = errors.New("无效的权限") ErrNoMetadata = errors.New("上下文中没有元数据") ErrNoCredentials = errors.New("上下文中没有认证信息") )
权限相关的错误
Functions ¶
func AuthorizationMiddleware ¶
func AuthorizationMiddleware(authorizer *RBACAuthorizer, resource Resource, permission Permission) grpc.UnaryServerInterceptor
AuthorizationMiddleware 授权中间件,用于检查特定权限
Types ¶
type Permission ¶
type Permission string
Permission 表示权限
const ( PermissionCreate Permission = "create" PermissionRead Permission = "read" PermissionUpdate Permission = "update" PermissionDelete Permission = "delete" PermissionAdmin Permission = "admin" )
预定义权限常量
type RBACAuthorizer ¶
type RBACAuthorizer struct {
// contains filtered or unexported fields
}
RBACAuthorizer 是基于角色的访问控制授权器
func (*RBACAuthorizer) AuthorizeByRole ¶
func (a *RBACAuthorizer) AuthorizeByRole(ctx context.Context, roleName string, resource Resource, permission Permission) error
AuthorizeByRole 根据角色授权
func (*RBACAuthorizer) CreatePermission ¶
func (a *RBACAuthorizer) CreatePermission(resource Resource, permission Permission) Permission
CreatePermission 解析权限字符串
func (*RBACAuthorizer) GetAllRoles ¶
func (a *RBACAuthorizer) GetAllRoles() []*Role
GetAllRoles 获取所有角色
func (*RBACAuthorizer) GetRole ¶
func (a *RBACAuthorizer) GetRole(roleName string) (*Role, error)
GetRole 获取角色
func (*RBACAuthorizer) MapMethodToPermission ¶
func (a *RBACAuthorizer) MapMethodToPermission(method string, resource Resource, permission Permission)
MapMethodToPermission 映射gRPC方法到权限
func (*RBACAuthorizer) MapServiceToResource ¶
func (a *RBACAuthorizer) MapServiceToResource(serviceName string, resource Resource)
MapServiceToResource 映射整个服务到资源权限
func (*RBACAuthorizer) ParseResourcePermission ¶
func (a *RBACAuthorizer) ParseResourcePermission(perm Permission) (Resource, Permission, error)
ParseResourcePermission 从权限字符串中解析资源和权限
func (*RBACAuthorizer) RemoveRole ¶
func (a *RBACAuthorizer) RemoveRole(roleName string)
RemoveRole 移除角色
func (*RBACAuthorizer) SetupDefaultRoles ¶
func (a *RBACAuthorizer) SetupDefaultRoles()
SetupDefaultRoles 设置默认角色
func (*RBACAuthorizer) StreamServerInterceptor ¶
func (a *RBACAuthorizer) StreamServerInterceptor() grpc.StreamServerInterceptor
StreamServerInterceptor 创建用于流RPC的授权拦截器
func (*RBACAuthorizer) UnaryServerInterceptor ¶
func (a *RBACAuthorizer) UnaryServerInterceptor() grpc.UnaryServerInterceptor
UnaryServerInterceptor 创建用于一元RPC的授权拦截器
type Role ¶
type Role struct {
Name string
Description string
// 资源-权限映射
Permissions map[Resource][]Permission
}
Role 表示角色
func (*Role) AddPermission ¶
func (r *Role) AddPermission(resource Resource, permission Permission)
AddPermission 为角色添加权限
func (*Role) HasPermission ¶
func (r *Role) HasPermission(resource Resource, permission Permission) bool
HasPermission 检查角色是否有对资源的特定权限
func (*Role) HasResource ¶
HasResource 检查角色是否可以访问资源
func (*Role) RemovePermission ¶
func (r *Role) RemovePermission(resource Resource, permission Permission)
RemovePermission 从角色移除权限
Click to show internal directories.
Click to hide internal directories.