Spring Security Acl是否支持类级别的权限?例如,假设我有一个Asset
类,并且我想允许Asset
具有角色的任何用户对该类的所有实例的读取权限ROLE_USER.
只要我能看到,ObjectIdentityImpl
只接受对象实例。
谢谢
Spring Security Acl是否支持类级别的权限?例如,假设我有一个Asset
类,并且我想允许Asset
具有角色的任何用户对该类的所有实例的读取权限ROLE_USER.
只要我能看到,ObjectIdentityImpl
只接受对象实例。
谢谢
这org.springframework.security.acls.model.ObjectIdentity
是 Spring Security ACL 的核心接口之一,表示要保护的单个域对象的身份。它强加了类型和标识符属性。如果您需要类级别的权限,您可以使用例如“Class”作为类型和实际类名作为标识符(例如“Asset”或“my.package.Asset”)。
根据具体场景,可能还需要相应地实现org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy
和org.springframework.security.acls.model.ObjectIdentityGenerator
接口。
Spring Security ACL 对此并不是很方便。我建议您改用预授权注释:
@PreAuthorize("hasRole('ROLE_USER')")
public List<Asset> getAllAssets();
确保您在配置中启用了前后注释。