Spring Security 中权限的命名约定?

rpt*_*t57 5 permissions naming-conventions spring-security

我目前正在使用 Spring Security 在我们的 Web 应用程序中实现一个安全层,更准确地说是通过实现我们自己的 PermissionEvaluator 来实现 hasPermission() 方法。

我想知道是否有任何命名约定/库来表示对模型对象、操作等的权限。

方法签名是 hasPermission(Object param, Object permission) 这让事情变得非常开放。大多数人似乎使用一个字符串作为第二个参数,并使用一个对象或对象数组作为第一个参数,所以他们最终得到了像 hasPermission(#object, 'edit') 这样的东西。

  • 是否有标准的许可清单或约定?(查看、编辑、修改、创建、添加、删除、移除、打印、列出...)
  • 使用字符串、数字或枚举来获得许可是否更好?
  • 是否有命名操作的约定(addPersonToProject、personToProjectAdd...)
  • 您能否分享一些有关您用于此类角色和权限的实现的信息?