Spring Security Acl级别类权限

时间:2013-10-28 13:41:39

标签: java spring spring-security acl spring-security-acl

Spring Security Acl 是否支持类级别权限?例如,如果我有Asset类,并且我希望允许Asset类的所有实例对具有角色ROLE_USER的任何用户具有读取权限。只要我能看到,ObjectIdentityImpl只接受对象实例。

由于

2 个答案:

答案 0 :(得分:3)

Spring Security ACL对此并不是很方便。我建议您使用预授权注释:

@PreAuthorize("hasRole('ROLE_USER')")
public List<Asset> getAllAssets();

确保在配置中启用了注释前和注释后。

答案 1 :(得分:3)

org.springframework.security.acls.model.ObjectIdentity是核心Spring Security ACL接口之一,表示要保护的单个域对象的标识。它强加了类型和标识符属性。如果您需要类级别权限,则可以使用例如“类”作为类型和实际类名作为标识符(例如“Asset”或“my.package.Asset”)。

根据具体情况,可能还需要相应地实现org.springframework.security.acls.model.ObjectIdentityRetrievalStrategyorg.springframework.security.acls.model.ObjectIdentityGenerator接口。

相关问题