我正在检查AppDescriptor
的权限属性,发现getRoles
中的AccessDefinition
实际上已弃用。有谁知道为什么它被弃用了?这是否意味着我们不应该在应用程序中设置权限角色?我问这个是因为我的代码会想要在应用程序中定义角色,我不知道即使它已经被弃用,我也可以使用它。
来自AccessDefinition.java的代码:
/** @deprecated */
@Deprecated
Collection<String> getRoles();
答案 0 :(得分:2)
这是否意味着我们不应该在应用中设置权限角色?
不,您可以设置运行应用程序所需的角色。
方法已被弃用,因为它只会返回配置为运行应用程序所必需的角色,而不管是否设置了超级用户使用应用程序的覆盖权限。
引入了 hasAccess(User user)
方法以允许对更复杂的规则进行此类检查(例如,考虑超级用户覆盖权限或AccessDefinition
的自定义实现可能要引入的任何其他规则)并同时进行保持getRoles()
方法普通(如返回setRoles(Collection<String> roles)
设置的内容)。
这就是原因。
答案 1 :(得分:0)
您应该通过相同的方法签名在User
下设置它们。
User.getRoles();