我们正在将Spring Security ACL基础架构与App Engine数据存储区结合使用。我们不使用低级数据存储API,而是使用Objectify框架来访问Datatstore。我们需要将Spring Security ACL模型(适用于RDBMS)转换为更适合无模式面向对象数据存储的模型。到目前为止,我们最终得到了下面描述的两个实体。
ACL
将AclEntry
几乎每次ACL都被已知的domainObject(而不是ACL id)检索,因此我们决定使用域对象作为给定ACL的祖先,以便我们可以使用祖先查询(强一致性)并获取最新的数据,在ACL的情况下至关重要
问题在于,这样的模型不足以进行诸如“具有给定用户(sid)访问权限的什么[实体]”之类的查询?其中[entities]可以是任何可用的实体,如项目,组,......
有没有人在NoSQL数据库上运行Spring Security ACL,特别是在App Engine数据存储上?任何提示都将不胜感激。
答案 0 :(得分:0)
您可能认为我的答案最初是关闭的,但您的问题超出了Spring Security:您需要更改数据方法。
如果您正在使用" NO SQL"数据存储区,允许您的应用扩展,而不是围绕数据构建应用。
您需要根据您的用例对实体进行建模,而不是将它们紧密地放在为RDBMS构建的框架中。 这是性能恕我直言的权衡。
如果您不愿意为了性能而交换结构,这可能意味着您的应用程序更适合Google Cloud SQL :)
我可能错了:告诉我们更多关于你的用例的信息?那将是如何通过" NoSQL"数据库中。