gpt4 book ai didi

spring - JpaRepository 上的 @PreAuthorize

转载 作者:行者123 更新时间:2023-12-01 07:57:15 26 4
gpt4 key购买 nike

我希望为我的 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,并且安全规则不相同(对于这些服务)。该怎么办?

关于spring - JpaRepository 上的 @PreAuthorize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com