我希望为我的REST服务实现基于角色的安全性.我正在使用spring-data-rest并已配置JpaRepository
如下:
@Repository @RestResource(path = "changesets", rel = "changesets") public interface ChangesetRepository extends JpaRepository{ }
我想@PreAuthorize
在继承的Page
方法上附加一个注释,以便GET需要一个特定的角色.
有没有办法做到这一点?我需要提供自定义实现还是我遗漏了一些明显的东西?
您可以为所有存储库添加自己的父类(请参阅文档中的操作方法).然后只需添加所有必要的注释,您的安全限制将适用于所有子bean.
从架构的角度来看,大多数情况下,存储库不是应用安全限制的正确位置.您的服务层更合适(因为您的安全限制取决于您的业务操作,而不取决于您的数据加载逻辑).请考虑以下示例:您希望在许多服务中重用相同的存储库,并且安全规则不同(对于这些服务).该怎么办?