带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(7)

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(7)

带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(6)https://developer.aliyun.com/article/1377432


6.演示

 

image.png

 

这是我在演讲中提到的一个简单网站的实现,你可以在这里看到一个包含内容、图像、文本以及用户评论的页面。当然,我可以在这里评论一下,然后我的评论就出现了。其他一些功能包括用户个人资料页面,你可以看到用户的头像,全名,用户所属的组,还有一个技术细节,用户的路径。

 

在访问控制设置中,工作正在进行中。现在我已经登录了,我可以在应用程序中做任何事情,所以这个内容子树是所有用户可见内容的位置。

 

我们看一下访问规则,你可以看到每个人都可以阅读/content 下面的内容。而且用户组有能力添加评论,这很重要。我们往下看,可以看到只有那些被允许撰写的人,你可以看到写的东西,特别是在主页子树下的是作者,所以这暗示了一个以团体为基础的组织。

 

在 content 下面还有一个不同的子树,实际上没有人可以撰写。我们有几个读权限,还有用户组的权限,但这只适用于评论。

 

如果我们看用户,可以看到有两组,允许撰写文章的作者和只允许发表评论的用户。进入用户内部,我们可以看到他们有某些属性。

 

现在我导航到内容树,我们看一下访问控制,我们在这里看到只有鲍勃·琼斯拥有全部的特权。还有一种服务叫家庭阅读服务,稍后我们会讲到它可以读取用户主页里的任何东西。

 

另外值得注意的是,在用户的个人资料下面存储了一张图片,这个我们稍后会讲到。

 

现在,让我们试着在这个应用程序上练习几个请求。我们提到这个应用程序是 RESTful 的,Sling 是 RESTful 的,所以我们可以发送一个加载主页的请求,可以看到它以 JSON 格式返回所有属性。此外,如果我们添加一个称为选择器的部件,我们也可以做同样的事情。

 

所以,与其要回家。Json,我们要求回家,Json,其中还包括子资源,第一级子资源。我们当然可以对评论做同样的事情,有趣的是,我们可以用这种方式呈现HTML片段。事实上,这就是注释页面呈现的方式。

 

同样是 RESTful,我们可以发送几个参数,我们可以发送信息,Sling资源类型。我们之前讨论过这个,创建一个空的,Sling将为我们填充,然后我们试着以 John Doe 的身份发表评论,稍后我们将发现如何看到实际的注释。

 

有趣的是,如果我们这样做没有任何身份验证,这将失败。它失败不是因为我们写了一些定义代码,是因为我们设置了正确的访问控制设置,并且不需要检查应用程序代码中的任何内容。

 

总结一下评论,我们可以添加一个特殊的重定向参数,然后我们告诉它重定向到哪里。Apache Sling 在进行更改后,会将我们重定向到正确的页面,实际上是评论页面。这就是应用程序的实现方式,没有自定义代码。

 

现在如果我们想列出用户,这对我们来说是不可用的。我们会得到一个 404 响应,因为我们没有任何的访问权限,甚至没有经过用户列出它们。当然,admin 用户可以这样做,因为 admin 拥有所有权限。

 

但是用户可以做的是阅读自己的主页,这张是我单独拍的,因为它是一条不可不可预测的道路。但通过这种方式,用户可以访问他们自己的主页。

 

有趣的是,不需要任何认证,我们就可以读取头像。嵌套在用户节点下面,严格来说,我们不应该。作为提示,可以看到这些地址并不指向用户的主页。我会给你展示这是怎么做的。

 

我要打开文本编辑器,你可能还记得我说过,讨论了存在于用户主页中的服务用户的权限,所以这些权限,此业务用户非交互用户,不能登录。你不能把它当作一个用户名,提供密码,然后登录并使用它做一些事情。相反,它只可以到应用程序代码。

 

带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(8)https://developer.aliyun.com/article/1377430


相关文章
|
3月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
110 0
|
1月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
33 4
|
15天前
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
38 0
|
1月前
|
Java 应用服务中间件 Apache
浅谈Tomcat和其他WEB容器的区别
Tomcat是一款轻量级的免费开源Web应用服务器,常用于中小型系统及并发访问量适中的场景,尤其适合开发和调试JSP程序。它不仅能处理HTML页面,还充当Servlet和JSP容器。相比之下,物理服务器是指具备处理器、硬盘等硬件设施的服务器,如云服务器,其设计目标是在处理能力、稳定性和安全性等方面提供高标准服务。简言之,Tomcat专注于运行Java应用,而物理服务器则提供基础计算资源。
|
2月前
|
缓存 前端开发 Java
打造未来兼容的Web应用:Apache Wicket引领响应式设计的热潮
【9月更文挑战第4天】在软件开发领域,构建响应式Web应用至关重要。Apache Wicket作为一个强大的Java框架,支持响应式设计,确保应用在不同设备上均有出色体验。本文通过示例代码介绍使用Wicket的最佳实践,涵盖页面与组件模型、CSS媒体查询及自定义标记处理器的应用。同时,文章强调了优化加载时间、增强交互性和提升可访问性的重要性,帮助开发者打造高性能且美观的Web应用。
46 3
|
2月前
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
56 1
|
3月前
|
Java Spring Apache
Spring Boot邂逅Apache Wicket:一次意想不到的完美邂逅,竟让Web开发变得如此简单?
【8月更文挑战第31天】Apache Wicket与Spring Boot的集成提供了近乎无缝的开发体验。Wicket以其简洁的API和强大的组件化设计著称,而Spring Boot则以开箱即用的便捷性赢得开发者青睐。本文将指导你如何在Spring Boot项目中引入Wicket,通过简单的步骤完成集成配置。首先,创建一个新的Spring Boot项目并在`pom.xml`中添加Wicket相关依赖。
95 0
|
3月前
|
Apache 开发者 Java
Apache Wicket揭秘:如何巧妙利用模型与表单机制,实现Web应用高效开发?
【8月更文挑战第31天】本文深入探讨了Apache Wicket的模型与表单处理机制。Wicket作为一个组件化的Java Web框架,提供了多种模型实现,如CompoundPropertyModel等,充当组件与数据间的桥梁。文章通过示例介绍了模型创建及使用方法,并详细讲解了表单组件、提交处理及验证机制,帮助开发者更好地理解如何利用Wicket构建高效、易维护的Web应用程序。
45 0
|
3月前
|
Java 前端开发 Apache
Apache Wicket与Spring MVC等Java Web框架大PK,究竟谁才是你的最佳拍档?点击揭秘!
【8月更文挑战第31天】在Java Web开发领域,众多框架各具特色。Apache Wicket以组件化开发和易用性脱颖而出,提高了代码的可维护性和可读性。相比之下,Spring MVC拥有强大的生态系统,但学习曲线较陡;JSF与Java EE紧密集成,但在性能和灵活性上略逊一筹;Struts2虽成熟,但在RESTful API支持上不足。选择框架时还需考虑社区支持和文档完善程度。希望本文能帮助开发者找到最适合自己的框架。
44 0
|
3月前
|
前端开发 JavaScript 开发者
革命性的飞跃:Apache Wicket新特性大揭秘,让你的Web开发之旅如虎添翼!
【8月更文挑战第31天】Apache Wicket作为一个成熟的Java Web框架,持续进化以适应现代Web开发需求。本文介绍Wicket的最新特性,包括响应式布局支持、组件化与模块化开发、异步请求处理、增强的表形处理以及与现代JavaScript框架的集成。通过具体代码示例展示如何利用这些特性构建高效、灵活且用户友好的Web应用程序。
43 0

推荐镜像

更多