spring-security - Spring Data JPA 和 spring-security : filter on database level (especially for paging)

标签 spring-security spring-data querydsl

我正在尝试使用注释和 spring-security 为我的开源项目添加方法级别的安全性。我现在面临的问题是 findAll 方法,尤其是用于分页的方法(例如返回页面)。

使用@PostFilter 适用于列表(但我个人认为在应用程序而不是数据库中过滤不是一个好主意)但在分页查询上完全失败。

这是有问题的,因为我有一个包含 List<Compound> 的实体.化合物有不同的实现方式,用户可能只有读取其中一种化合物的权限。复合用途 TABLE_PER_CLASS遗产。存储库实现 QueryDslPredicateExecutor .

我的想法是为每个查询添加一个谓词,根据当前用户限制返回结果。然而,我有点迷失在 a) 用户和角色的数据模型应该如何看起来和 b) 然后如何创建谓词(一旦定义了模型,这可能很容易)。或者 querydsl 是否已经提供基于类型的过滤(在被查询类中包含的元素上)?

最佳答案

目前没有这样的支持,但我们在路线图上有它。你可能想关注 DATACMNS-293总体进展。

关于spring-security - Spring Data JPA 和 spring-security : filter on database level (especially for paging),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15108543/

相关文章:

java - 使用 Spring Security 处理静态资源

java - 如何获取和使用 JHipster 微服务 JWT 的身份验证 token

elasticsearch - Kibana中的查询不使用Regexp返回日志

java - 如何为 spring-rest 构建自定义 @Projections?

java - JPA QueryDSL 按天计数聚合

java - 通过 REST Controller 使用 Spring Data JPA 和 QueryDsl 的异常

java - Spring:实体的角色、权限和权限

java - 类的 SpEL 引用实例变量

java - 如何使用 findByClassLiteral 查询构建自定义 MongoRepository

即使在 child 被保存后,Spring Data Jpa 测试也会返回空列表