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<String> 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 项目