【问题标题】:Spring Security authorization for custom usergroups自定义用户组的 Spring Security 授权
【发布时间】:2016-04-23 10:25:45
【问题描述】:

我正在尝试使用 Spring Security 实现 Web 应用程序。我了解 Spring Security 的基于角色的机制,并且可以让它发挥作用。我的问题是,在我的网络应用程序中,用户可以创建自己的组并向其中添加朋友(应用程序的其他用户)。用户的某些页面的访问是基于这个朋友组的。它应该类似于 facebook 用户和组。 如何使用 Spring Security 实现这些自定义用户组和对用户页面的访问?这个用例有默认机制吗?还是我应该实现自己的数据库表?

【问题讨论】:

    标签: java web-applications spring-security authorization


    【解决方案1】:

    我正在使用具有 ACL 机制的用户组。基本上,我确保在为对象创建 ACL 时设置所有者。然后,当另一个用户尝试访问此对象时,会检查所有者的组以查看是否存在匹配项。

    这当然意味着当用户更改他的组时,对象会“随他而去”。

    如果您不希望这种行为,您可以将组对象的 ACL 作为安全对象的父 acl。然后,当用户更改组时,您应该为组对象 ACL 设置正确的条目。这样,安全对象与用户组而非用户本人相关联。

    Spring Security Domain Object Security (ACLs)

    【讨论】:

    • 你知道我在网上哪里可以找到代码示例吗?
    • 对于用户组还是整个ACL?我相信您可以找到很多关于如何设置 ACL 的示例,并且与设置 ACL 相比,用户组功能(正如我实现的那样)是小菜一碟 :) 我基本上只是创建了自己的 PermissionEvaluator 在 checkPermission 方法中,我只从 SecurityContext 检索两个用户 - ACL 所有者和当前用户,然后比较他们的组。 AclPermissionEvaluator - Spring 实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2015-10-21
    • 2019-02-06
    • 1970-01-01
    • 2021-03-13
    • 2013-02-13
    • 2023-03-05
    相关资源
    最近更新 更多