Magnolia 的 AccessDefinition 类中已弃用的角色

Posted

技术标签:

【中文标题】Magnolia 的 AccessDefinition 类中已弃用的角色【英文标题】:Deprecated roles from AccessDefinition class of Magnolia 【发布时间】:2016-08-03 15:14:53 【问题描述】:

我检查了AppDescriptor 的权限属性,发现AccessDefinition 中的getRoles 实际上已被弃用。有谁知道它为什么被弃用?这是否意味着我们不应该在应用程序中设置权限角色?我问这个是因为我的代码想要获取应用程序中定义的角色,我不知道我是否可以使用这个角色,即使它已经被弃用了。

AccessDefinition.java 中的代码:

/** @deprecated */
@Deprecated
Collection<String> getRoles();

【问题讨论】:

【参考方案1】:

这是否意味着我们不应该在应用程序中设置权限角色?

不,您可以设置运行应用程序所需的角色。

方法已被弃用,因为它只会返回配置为运行应用程序所必需的角色,而不管是否设置了超级用户使用应用程序的覆盖权限。

引入hasAccess(User user) 方法是为了允许对更复杂的规则进行此类检查(例如,考虑超级用户覆盖权限或AccessDefinition 的自定义实现可能想要引入的任何其他规则),同时保持getRoles()普通方法(如返回使用setRoles(Collection&lt;String&gt; roles) 设置的内容)。

这就是为什么。

【讨论】:

【参考方案2】:

您应该通过相同的方法签名将它们设置在User 下。

User.getRoles();

【讨论】:

但我想知道为内容应用设置的角色,而不是用户的角色。实际上,经过进一步检查,我认为它已被弃用,因为 magnolia 希望我们使用 AccessDefiniton 的“boolean hasAccess(User var1)”函数并且永远不要使用 getRoles。

以上是关于Magnolia 的 AccessDefinition 类中已弃用的角色的主要内容,如果未能解决你的问题,请参考以下文章

Magnolia 5.5.5 Magnolia 中的索引配置

Magnolia 激活模块(5.2.3 版)确保 Magnolia 属性文件中存在密钥属性“magnolia.author.key.location”

将自定义字段从 magnolia 5 移动到 magnolia 6

如何在空白 magnolia 实例上安装 magnolia 的 Travel Demo 项目

Microsoft Dynamics 与 Magnolia 的集成

基本 Magnolia 项目无法启动