查询基于字符串的通配符shiro权限

时间:2014-12-30 07:55:17

标签: java shiro

我将我的权限存储在通配符字符串格式中,例如(菜单:仪表板,报告:首先等)。我有一个单独的报告表,用于存储所有报告及其属性。但报告和权限表之间没有外键关系。 (如果我以关系方式存储权限,可以这样做)

现在我必须检索用户有权在UI上显示的所有报告。 一种方法是查询所有报告,然后根据主题的允许权限进行过滤。但我只想知道最佳实践,该小组中的其他人如何处理这种情况。

编辑

任何人对此有任何意见,或者他们是否可以分享他们如何管理权限。 谢谢

1 个答案:

答案 0 :(得分:0)

它更好而不是存储菜单:仪表板,报告:首先在数据库中存储个人权限,以便轻松查询它们,以及万一你必须实现像hasanypermission(p1,p2 ...)这样的逻辑它不会胡作非为。

我将所有权限存储在表mstpermission中,该表具有系统可能的应用程序提示 和 将角色映射到权限的appermission

MSTPERMISSION
PERMID  VARCHAR2(20 )
STATUS  NUMBER(1,0)
PERMDESC    VARCHAR2(100)

有像

这样的数据
*   1   All Permissions
entry   1   All Entries
entry:create    1   Create Entries
entry:edit  1   Edit/Delete Entries
reports 1   All Reports
reports:dashboard   1   DashBoard
reports:general 1   General Report


APPPERMISSION
PERMID  VARCHAR2(20 BYTE)
ROLEID  VARCHAR2(3 BYTE)

之类的条目
*   00
entry:create    01
entry:edit  01
reports:general 01
appt    02
entry:edit  02
reports:general 02