spring之JpaRepository 上的 @PreAuthorize
davidwang456
阅读:46
2024-02-27 23:08:18
评论:0
我希望为我的 REST 服务实现基于角色的安全性。我正在使用 spring-data-rest 并配置了一个 JpaRepository
像这样:
@Repository
@RestResource(path = "changesets", rel = "changesets")
public interface ChangesetRepository extends JpaRepository<Changeset, Long> { }
我想附上一个
@PreAuthorize
对继承的注释
Page<T> findAll(Pageable pageable)
方法,以便 GET 需要特定角色。
有没有办法做到这一点?我需要提供自定义实现还是我遗漏了一些明显的东西?
请您参考如下方法:
您可以为所有存储库添加自己的父类(请参阅 how to do it in the documentation )。然后只需添加所有必要的注释,您的安全限制将应用于所有子 bean。
从架构的角度来看,大多数时候存储库不是应用安全限制的正确位置。您的服务层是更合适的地方(因为您的安全限制取决于您的业务操作而不是您的数据加载逻辑)。考虑以下示例:您希望在许多服务中重用相同的 Repository,并且安全规则不相同(对于这些服务)。该怎么办?
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。