我需要为我的产品实现定制的RBAC支持,我偶然发现了看起来很有希望的casbin/jcasbin。
我正在检查java,而且我似乎没有找到一种方法来获取用户可以访问的所有特定类型的对象。
比如说,我正在实现一个API (不一定是一个基于REST的API),它应该返回用户可以访问的所有实体的列表。
那会是什么jcasbin API调用呢?
我正在查看Enforcer接口,它似乎检查用户(主题)是否能够对给定的对象执行特定的操作。
如何列出具有给定操作的用户的所有对象?
我认为具有资源角色的RBAC是我想要的,我的model.conf
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
g2 = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = g(r.sub, p.sub) && g2(r.obj, p.obj) && r.act == p.act
p, role:viewer, context, read
g, alice, role:viewer
g2, c1, context
g2, c2, context在这里,viewer角色将read权限授予实体类型context。alice被指定为viewer角色。c1和c2对象的类型为context。现在,我想为用户read contexts提供alice。
P.S.:我不确定这类问题是否合适。
发布于 2022-01-03 02:09:19
使用新添加的batchEnforce() API:https://github.com/casbin/jcasbin/issues/187
https://stackoverflow.com/questions/67375295
复制相似问题