【发布时间】:2015-08-18 05:24:15
【问题描述】:
我的要求如下:我们有一个使用角色的应用程序让我们说(ADMIN/USER/GUEST),这取决于他们可以访问应用程序不同部分的角色。但是在特定部分,其中一些可以看到一些操作/选项/按钮/选项卡,这意味着对于两个 ADMIN 用户,屏幕的配置和可用选项可能不同。
我在 spring security 中阅读了 DomainACL 和 spring-security permissions,我相信使用 DomainACL 不是我需要满足此要求的,因为我不需要对象粒度安全。
我的问题是spring-security有一个特定的开箱即用功能可以解决我不知道的这个要求,考虑到我需要在jsp中添加一些java标签来删除按钮/来自 UI 的控件。 另一个问题是:没有 DomainACL 的权限就足以解决这个要求,否则我会遗漏一些东西。
基本上我需要保存可以为某些用户执行的操作 + 用户的角色,可以说我想在数据库中存储权限为“EXECUTE SEARCH”、“VIEW_USER_TAB”。
- 管理员/彼得/“执行搜索”、“VIEW_USER_TAB”
- 管理员/莎拉/“执行搜索”
- 用户/约翰/“VIEW_USER_TAB”
我正在使用 spring-security3.2 和 jsp 页面作为我的视图技术。
【问题讨论】:
-
与
ROLE_ADMIN或ADMIN没有什么不同。他们是权威,他们基本上是一样的。您可以分配它们并在按钮周围放置一个安全标签。 -
但是hasPermission和hasRole呢,我可以无所谓,我想在spring标签中使用hasPermission("ACTION"),这也可以吗?
-
hasPermission和hasRole是相同的,区别在于hasPermission前缀与ROLE_取决于您设置为使用的前缀。
标签: java spring jsp spring-mvc spring-security