将 Spring 安全 ACL 与 spring-data-mongodb 一起使用

Posted

技术标签:

【中文标题】将 Spring 安全 ACL 与 spring-data-mongodb 一起使用【英文标题】:Using Spring security ACLs with spring-data-mongodb 【发布时间】:2017-11-07 04:23:57 【问题描述】:

spring-security-acl 文档声明如下:

Please note that our out-of-the-box AclService and related database classes all use ANSI SQ

由于我们的域类使用 spring-data-mongo 存储在 mongodb 中,我们正在研究在 spring-data-mongodb 之上实现访问控制列表的方法。

据我了解,默认的 spring 安全 ACL 实现依赖于 SQL 数据库中引用表和现有表的对象 ID 的附加表。然后框架挂钩 SQL 查询并更改它们以加入 ACL 表,将结果集限制为当前经过身份验证的用户。

鉴于几乎没有关于如何在 mongodb 数据库上应用相同概念的资源(this repo 除外)——我想知道 ACL 概念是否可以以合理的性能映射到一个禁止—— sql数据库。

为 spring-data-mongodb 编写 ACL 实现是否需要一些努力,还没有资源,或者是否有其他影响,例如性能,这不会让 ACL 概念正确映射到mongodb?

【问题讨论】:

也有兴趣,有什么发现吗? 您可能想订阅这个春季安全问题:github.com/spring-projects/spring-security/issues/4484。 【参考方案1】:

检查this repository,它为 MongoDB 实现了 ACL,它与 Spring 4 兼容,并且有一个 PR 使其与 Spring 5 兼容。

【讨论】:

以上是关于将 Spring 安全 ACL 与 spring-data-mongodb 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security ACL 层次结构

Spring Security 4 ACL - 用户创建和数据库配置

Spring Security 的 ACL 配置问题

Spring cloud微服务安全实战-4-7重构代码以适应真实环境

如何使用 Spring Security、Hibernate 和行级 ACL 进行分页

没有 Spring Security ACL 的 Spring 对象级权限