ControlProxy/access-control-template/README.md
2023-11-17 21:37:42 +08:00

81 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# access-control-template
## 构建配置
1.在build.gradle中增加`copyAccessControl`
```gradle
task copyAccessControl(type: Copy) {
from "../access-control-template/yjs"
into "./build/output/"
}
```
2. 在`buildZip`任务中添加依赖:
```gradle
task buildZip(type: Zip, dependsOn: [...,"copyAccessControl"]) {
...
```
3. 在`main.yjs`中添加RocksDB权限。
`@Permission("RocksDB")`
## ABAC.yjs的使用方式
1.在main.yjs中增加`import`语句,并在`onCreate`方法中,添加初始化调用。
```javascript
import "actemplate/ABAC.yjs";
function onCreate(arg) {
...
initABAC(requester);
}
```
2.针对需要访问控制的函数,使用`@Access`注解
```javascript
@Access({"ACFunction":"accept"})
export function xxx
```
3.初始化权限。
初始状态下,仅`owner`(启动者) 拥有全部权限。
通过调用`addPermission`和`removePermission`可对相应公钥的用户作授权。
## RBAC.yjs的使用方式
1.配置角色-权限。在`main.yjs` 下创建 `role.json`
参考role.template.json。例如以下配置文件定义了两种角色`userAdmin`和`authorizedUser`。
启动者自动默认为超级管理员,有全部权限。
```json
{
"userAdmin": ["addRole","removeRole"],
"authorizedUser": ["hello"]
}
```
2.在main.yjs中增加`import`语句,并在`onCreate`方法中,添加初始化调用。
```javascript
import "actemplate/RBAC.yjs";
function onCreate(arg) {
...
initRBAC(requester, Global.Resources.loadAsString("/role.json"));
}
```
2.针对需要访问控制的函数,使用`@Access`注解
用法同ABAC。
```javascript
@Access({"ACFunction":"accept"})
export function xxx
```
3.初始化权限。
初始状态下,仅`owner`(启动者) 拥有全部权限。
通过调用`addRole`和`removeRole`可对相应公钥的用户作授权。