当前位置: 首页 > 知识库问答 >
问题:

Spring SecurityACL是否可以应用于域类级别?

松和璧
2023-03-14

是否可以对域类(而不是域实例)应用ACL权限?我有一个场景,我想为一类用户提供对域对象完全CRUD的一揽子权限,而第二类用户必须有特定的ACL条目才能做到这一点。

当然可以将ACL条目与基于角色的权限混合来实现这一点,但是我觉得有一个更优雅的解决方案,除了实例级别之外,Spring ACL还可以在类级别上工作。

我正在查看微薄的Spring安全ACL留档和这个问题。

共有1个答案

祁嘉木
2023-03-14

看看接口ObjectId相。它表示在系统中受保护的对象。

/**
 * Obtains the actual identifier. This identifier must not be reused to represent other domain objects with
 * the same javaType.
 *
 * Because ACLs are largely immutable, it is strongly recommended to use
 * a synthetic identifier (such as a database sequence number for the primary key). Do not use an identifier with
 * business meaning, as that business meaning may change in the future such change will cascade to the ACL
 * subsystem data.
 *
 * @return the identifier (unique within this type; never null)
 */
Serializable getIdentifier();

/**
 * Obtains the "type" metadata for the domain object. This will often be a Java type name (an interface or a class)
 * – traditionally it is the name of the domain object implementation class.
 *
 * @return the "type" of the domain object (never null).
 */
String getType();

正如您所见,Spring Security性使用Serializable来描述标识符的类型。因此,可以使用带有类名的字符串。

您需要更新SQL模式,因为Spring Security的作者假设大多数人都会通过长/整数ID标识对象。

create table acl_object_identity(
...
object_id_class bigint not null,
object_id_identity bigint not null,

正如我所检查的,JdbcMutableAclService能够处理自定义,因为它只使用ObjectId相接口。

研究org的源代码。springframework。安全ACL包。

 类似资料:
  • 问题内容: 今天,我在采访中面临一个问题。是否可以在Singleton类上应用继承概念?我说过,由于构造函数是私有的,因此我们无法扩展该Singleton类。 他问我的下一件事是将继承应用于该Singleton类。因此,我将Singleton的构造函数作为受保护对象,认为孩子的构造函数也已受到保护。但是我错了,孩子可以有一个等于或大于该值的修饰符。 因此,我请他在这种情况下举一个真实的例子。他没能

  • 我已经能够升级angularjs元素指令以用于angular 4。下面是一个示例代码: [myScores.js] [myScores.ts] 请注意,我正在使用 UpgradeComponent 来升级 myScores 元素指令。我已经在属性指令上尝试了相同的方法,但得到了一个错误。有没有办法升级属性指令? 下面是我升级属性指令的尝试: [绿色.js] [makeGreen.ts] 当加载一个

  • Google API是否可以同时用于自定义域Google帐户和gmail帐户 我对此做了一些研究,发现有两种类型的Google API,一种是简单的Google API,另一种是Google Domain API 我想使用谷歌api,这样我就可以验证工作人员的电子邮件,无论他们是Gmail用户还是谷歌商业账户持有人 我对这两个API感到困惑,我想知道Google API是只支持gmail帐户,还是

  • 问题内容: 我在寻找什么: 设置一个字符的一半样式的方法。(在这种情况下,一半字母是透明的) 我目前正在搜索并尝试过的内容(没有运气): 样式字符/字母一半的方法 使用CSS或JavaScript设置字符的样式 将CSS应用于字符的50% 以下是我尝试获取的示例。 为此是否存在CSS或JavaScript解决方案,还是我不得不诉诸图像?我宁愿不走图片路线,因为此文本最终会动态生成。 更新: 既然许

  • AccessibilityService在系统的内存管理方面与普通服务有何不同? 我想问的是:系统可以为了节省内存而关闭AccessibilityService吗?如果可以,当您进入AccessibilityService时,您会看到它打开还是关闭?用户是否必须再次手动打开? 使用startForeground是否有助于使AccessibilityService保持活动状态? 在一个类似的问题中,

  • 阅读文档时,并不十分清楚。 我想要的是能够存储和检索简单的json文档。使用CloudSearch,似乎可以以SDF格式存储文档,然后搜索它们,但它只返回文档ID和指定字段的一小部分(我认为是200个字符)。 有没有一种方法来检索完整的文档ID只是使用CloudSearch?还是打算作为搜索和使用主存储服务的附加工具?