【问题标题】:ACL in spring security or permision configurationspring安全或权限配置中的ACL
【发布时间】:2015-08-18 05:24:15
【问题描述】:

我的要求如下:我们有一个使用角色的应用程序让我们说(ADMIN/USER/GUEST),这取决于他们可以访问应用程序不同部分的角色。但是在特定部分,其中一些可以看到一些操作/选项/按钮/选项卡,这意味着对于两个 ADMIN 用户,屏幕的配置和可用选项可能不同。

我在 spring security 中阅读了 DomainACLspring-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_ADMINADMIN 没有什么不同。他们是权威,他们基本上是一样的。您可以分配它们并在按钮周围放置一个安全标签。
  • 但是hasPermission和hasRole呢,我可以无所谓,我想在spring标签中使用hasPermission("ACTION"),这也可以吗?
  • hasPermissionhasRole 是相同的,区别在于 hasPermission 前缀与 ROLE_ 取决于您设置为使用的前缀。

标签: java spring jsp spring-mvc spring-security


【解决方案1】:

我在我的应用程序中做了 ROLES 和 OPERATION。 看看这个答案,它帮助了我: Difference between Role and GrantedAuthority in Spring Security

基本上这篇文章所说的是角色和权限之间没有区别,两者都被授予权限,并且需要放置在安全上下文的顶部才能管理对不同资源的访问。使用 hasRole 或 hasPermission 只是为了指定一些对开发人员来说更具可读性的内容,但两者都在分析授予的权限域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 2012-06-10
    • 2016-12-01
    • 2013-04-17
    • 2014-05-11
    • 2014-01-08
    • 2011-09-02
    相关资源
    最近更新 更多