带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(4)https://developer.aliyun.com/article/1377435
5.Apache Sling 安全功能
就 Apache Sling 而言,我一直在谈论存储库以及它如何让你组织一个层次结构,但我并没有真正深入讨论如何在实践中存储的主题。所以我们委托给一个叫做 Apache Jackrabbit Oak 的持久化引擎斜杠应用程序,它是一个分层的、功能强大的内容存储库,并且它基于 JCR标准,有很多功能。
就像我说的,它可以存储,以层次方式的内容。同时它具有多版本并发控制,并非常适合处理并发更改。此外它也有很好的读取性能。就其特征而言,它提供了现成的索引和各种索引结构。你可以选择本地的索引,也可以选择 Lucene 索引,它集成了 elastic search 和 solar全文搜索。
现在它内置了访问控制,这一点稍后会变得非常重要,它可以为你透明地存储二进制文件。在实现方面,它可以将数据存储在磁盘上的内存映射的 tar 文件中,或者如果你想的话,我们可以将数据存储在MongoDB 中来扩展你的部署。它能够区分常规属性和大型二进制属性,并将它们存储在S3存储库中或仅存储在磁盘上。
非常有特色,它有事件、版本控制,非常适合 Apache Sling,就好像它们是为彼此而生的。
接下来是安全部分,经常在 web 应用程序中看到的是处理访问控制的应用程序代码。它还增加了开发人员在代码中处理这个问题的负担,就像如果用户拥有作者组的一部分,它可能会写入以下数据库表。
Apache Sling 的特殊之处在于它维护了用户的身份贯穿应用的所有层。这个的意思是,当用户请求使用浏览器或者命令行工具的时候,它自带会话 cookie 或身份验证数据。当它转到 Sling 时,Sling 能够确认用户的身份,然后将“这是 John Doe”,转给内容存储库。
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(6)https://developer.aliyun.com/article/1377432