问题标签 [spring-security-acl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
846 浏览

spring-security - 在 Spring Security 中实现 acl on field

我想为我的对象字段实现 spring acl。

有谁知道我必须为此实施什么?

例如,我有购买对象。

我希望 admin_role 阅读所有字段,并希望秘书角色只阅读用户名和地址字段

0 投票
3 回答
6715 浏览

java - Spring ACL 是一个好的 ACL 实现吗?

我读过关于 Spring ACL 的信息,但它似乎不是很能干。例如:

  1. 无法列出具有权限 Y 的所有类型 X 的对象
  2. 无法为新部署自动创建架构

你用什么做ACL?让 ACL 与域模型如此分离是否聪明?

0 投票
1 回答
498 浏览

spring - Spring ACL 投票者配置

因此,我尝试在我的项目中实现一个简单的 ACL 示例,并且一切正常。我有以下配置:

现在,我的项目中有大约 30 个实体,我想为每个实体定义至少 4 个角色(创建、读取、写入、管理)。我是否必须为每个实体角色对定义一个 bean?有没有更简单的方法来做到这一点?我是否总是需要为选民设置一个特定的班级?

在这个项目中也可以期待新的特性和新的实体和角色。我是否必须在我的配置文件中配置每个新实体和角色,或者是否有更通用的方法来执行此操作。你能指点我一些例子或文档吗?

我目前正在使用 Spring Security 3.1。

谢谢

PS 我已经在 Spring Security 论坛上发布了我的问题,但我想我也会尝试一下

0 投票
2 回答
2154 浏览

spring-security - 春季 ACL 问题

我正在使用新的 Spring Security 3.1 并且对 Spring Security ACL 有几个问题。

  1. 因此,假设我有一个对象并想为它定义一个 ACL。我创建了一个 ACL 条目并希望将其分配给一组用户;不是一个角色 ( GrantedAuthoritySid),不是一个用户 ( PrincipalSid),而是一组用户。我到处研究了一个例子,但找不到任何例子。您能否指出一个在这种情况下对我有帮助的示例或课程?

  2. 所以现在我想创建与第一个对象相关的第二个对象(它应该适用于相同的用户)。例如,这可能是第一个对象的状态更新。My GrantedAuthorityorPrincipal对第二个对象有不同的权限掩码。第一个对象也有 2 GrantedAuthorities(2 ACLEntries),而状态更新只有一个。如果我使用 ACL 继承,则第一个对象的权限集与第二个对象的权限集不匹配。我的问题是如何对此进行建模,以便GrantedAuthorities两个对象的 自动保持一致,同时保留不同的权限掩码。一个想法是使用复合模式将GrantedAuthority第二个对象的链接GrantedAuthority到第一个对象的 (而不是将其链接到用户)。

  3. ACL 有一个所有者。楼主是为了什么?它对 ACL 或 ACL 条目起什么作用?

0 投票
1 回答
1894 浏览

java - 没有 Spring Security ACL 的 Spring 对象级权限

我想在我的项目中实现对象级权限。更具体地说,会有一个用户、一个学校和一个学生类。每个学生将属于一所学校。系统的每个用户也将属于一所学校。因此,系统的每个用户只能访问属于他学校的学生。

我在很多地方读到过,这可以在 spring security ACL 的帮助下完成。这需要在我的数据库中创建许多 ACL_ 表(如果我没记错的话是 4 个)并且对我的每个对象都有特定的权限!所以我的 ACL_ENTRY 中的行数与对象数一样多!

这对我的应用程序来说太过分了,因为该对象已经知道谁可以访问它,谁不能访问它 - 为什么我还要一个额外的 acl_entry?我想要的是检查要更新的对象是否属于特定用户并返回是否允许。选择也是如此——只返回属于特定用户的对象。

据我所知,这必须在我的数据访问层中完成——如果我在其他任何地方这样做,我就会遇到查询问题(因为我需要一一检查所有对象以查看它们是否属于特定用户)。对于我的数据访问,我使用spring-data,其接口扩展了 JpaRepository。我可以添加自己的保存/选择方法吗?如何从这些方法中获取 User 对象?有没有人为了帮助我开始做类似的事情?

0 投票
1 回答
362 浏览

google-app-engine - Spring Security ACL on App Engine Datastore

We are using Spring Security ACL infrastructure in conjuction with App Engine Datastore. We do not use low-level Datastore API but rather we use Objectify framework to access Datatstore. We need to transform Spring Security ACL model (suitable for RDBMS) into model more suitable for schema-less object-oriented Datastore. So far we have ended up with two entities described below.

Acl

  • id: Long
  • domainObject: Key (ancestor/parent)
  • entries: List<AclEntry> (embedded)
  • owner: String

AclEntry

  • sid: String
  • principal: boolean
  • mask: int
  • granting: boolean

Almost every time the ACL is being retrieved by the known domainObject (not by ACL id) and hence we decided to use the domain object as an ancestor for the given ACL so that we can use ancestor query (strong consistent) and get most up-to-date data that is crucial in case of ACL

The thing is that such a model is not sufficient for queries like "What [entities] has the given user (sid) access to?" where [entities] can be any available entity like a project, group, ...

Does anyone have some experience with running Spring Security ACL on NoSQL database especially on App Engine Datastore? Any hint would be appreciated.

0 投票
1 回答
1855 浏览

spring - 使用 Spring Security ACL 授予对现有对象身份的权限

我正在使用 Spring Security ACL 实现,并且想知道为现有对象身份授予角色/用户(安全身份 - SID)新权限的最佳方式是什么。

例如,假设我有以下内容(我主要省略了主键和其他一些列,并简单地通过字符串值引用以提高可读性):

  • ACL_SID:ROLE_TEST
  • ACL_CLASS:test_class
  • ACL_OBJECT_IDENTITY:
    • ID:1
    • object_id_class:test_class
    • object_id_identity:someObjectInstanceId
  • ACL_ENTRY:
    • acl_object_identity:1
    • 西德:ROLE_TEST
    • 掩码:(CREATE这将是数据库中的整数)

现在,我想为class 的所有未来和现有对象授予WRITE该角色的权限。对于将来创建的对象,我将简单地检查角色的权限并授予它们。但是现有的对象呢?ROLE_TESTtest_class

Spring 是否提供任何东西来轻松做到这一点,或者我是否必须编写自己的自定义代码来执行以下操作(这不会那么糟糕,但如果 Spring 已经提供了这个,我宁愿自己不做):

  1. 使用我要授予新权限的角色/用户的 SID 检索所有 ACL 条目,并引用具有适当object_id_class.
  2. 对于每个结果,创建一个与结果相同的新 ACL 条目,但掩码除外,这将反映新的权限。
0 投票
1 回答
689 浏览

spring - 使用 Spring Security ACL 注释对方法进行单元测试的最佳方法是什么?

假设我有如下方法:

是否有一种简单的方法来模拟/授予/拒绝身份验证的“READ”权限?

0 投票
2 回答
1740 浏览

hibernate - 如何使用 Spring Security、Hibernate 和行级 ACL 进行分页

我正在阅读有关 Spring Security 的信息,想知道是否可以将 Spring ACL 与休眠和分页一起使用。生成的 SQL 肯定很吓人,但可以自动生成。如果数据库支持递归查询评估,甚至可以使用分层 ACL

使用后过滤器不是解决方案,因为它会破坏分页,并且与数据库内的 ACL 过滤相比是不必要的开销。

所以我实际上有构建解决方案的部分。我想知道是否有人已经这样做了。

链接:

0 投票
2 回答
1137 浏览

java - Spring Security Acl 级别类权限

Spring Security Acl是否支持类级别的权限?例如,假设我有一个Asset类,并且我想允许Asset具有角色的任何用户对该类的所有实例的读取权限ROLE_USER.只要我能看到,ObjectIdentityImpl只接受对象实例。

谢谢