ControlProxy/access-control-template
2023-11-20 15:38:39 +08:00
..
actemplate add access control example 2023-11-20 15:38:39 +08:00
LICENSE add submodules 2023-11-17 21:37:42 +08:00
README.md add submodules 2023-11-17 21:37:42 +08:00
role.template.json add submodules 2023-11-17 21:37:42 +08:00

access-control-template

构建配置

1.在build.gradle中增加copyAccessControl

task copyAccessControl(type: Copy) {
    from "../access-control-template/yjs"
    into "./build/output/"
}
  1. buildZip任务中添加依赖:
task buildZip(type: Zip, dependsOn: [...,"copyAccessControl"]) {
...
  1. main.yjs中添加RocksDB权限。 @Permission("RocksDB")

ABAC.yjs的使用方式

1.在main.yjs中增加import语句,并在onCreate方法中,添加初始化调用。

import "actemplate/ABAC.yjs"; 

function onCreate(arg) {
    ...  
    initABAC(requester);
}

2.针对需要访问控制的函数,使用@Access注解

@Access({"ACFunction":"accept"})
export function xxx

3.初始化权限。

初始状态下,仅owner(启动者) 拥有全部权限。 通过调用addPermissionremovePermission可对相应公钥的用户作授权。

RBAC.yjs的使用方式

1.配置角色-权限。在main.yjs 下创建 role.json。 参考role.template.json。例如以下配置文件定义了两种角色userAdminauthorizedUser。 启动者自动默认为超级管理员,有全部权限。

{
    "userAdmin": ["addRole","removeRole"],
    "authorizedUser": ["hello"]
}

2.在main.yjs中增加import语句,并在onCreate方法中,添加初始化调用。

import "actemplate/RBAC.yjs"; 

function onCreate(arg) {
    ...  
    initRBAC(requester, Global.Resources.loadAsString("/role.json"));
}

2.针对需要访问控制的函数,使用@Access注解 用法同ABAC。

@Access({"ACFunction":"accept"})
export function xxx

3.初始化权限。 初始状态下,仅owner(启动者) 拥有全部权限。 通过调用addRoleremoveRole可对相应公钥的用户作授权。