Spring Security 3_Chapter01
时间:2025-05-13
时间:2025-05-13
Spring Security 3 中文版
第一章 一个不安全应用的剖析
毫无疑问,安全是任何一个写于21世纪的web工程中最重要的架构组件之一。在这样一个
时代,计算机病毒、犯罪以及不合法的员工一直存在并且持续考验软件的安全性试图有所收
益,因此对你负责的项目综合合理地使用安全是至关重要的一个元素。
本书的写作遵循了这样的一个开发模式,这个模式我们感觉提供了一个有用的前提来
解决复杂的话题——即使用一个基于Spring3的web工程作为基础,以理解使用Spring
Security3使其保证安全的概念和策略。
不管你是不是已经使用Spring Security还是只是对这个软件有兴趣,就都会在本书
中得到有用的信息。
Spring Security 3 中文版
在本节的内容中,你能够:
检查一个虚拟安全审计的结果
讨论web应用通常的一些安全问题
学习软件安全中的几个核心词汇和概念
如果你已经熟悉基本的安全术语,你可以直接跳到第二章:Spring Security起步,在哪里
我们将涉及这个框架的细节。
安全审计
这是你作为软件开发人员在Jim Bob Circle Pant Online Pet
Store(http://www.77cn.com.cn)工作的一个清晨,你正在喝你的第一杯咖啡的时候,收到了你主管
的以下邮件:
To: Star Developer <stardev@http://www.77cn.com.cn>
From: Super Visor <theboss@http://www.77cn.com.cn>
Subject: 安全审计
Star,
今天,有一个第三方的安全公司要审计我们的电子商务网站。尽管我知道你在设
计网站的时候已经把安全考虑在内了,但请随时解决他们可能发现的问题。
Super Visor
什么?你在设计应用的时候并没有过多考虑安全的问题?似乎你有许多的东西要向安全审
计人员学习。首先,让我们花一点时间检查一下要审计的应用吧。
关于样例应用
尽管在本书的后续内容中我们要模拟虚拟的场景,但这个应用的设计以及我们对
其进行的改造都是基于现实世界中真实使用Spring的工程。
这个应用的设计很简单,使得我们能够关注于重要的安全方面而不会过多关注
ORM的细节和复杂的UI技术。我们期望你能够参考其他的资料来掌握示例代码中所涉及
功能的技术。
代码是基于Spring和Spring Security3编写而成的,但是它很容易改变为
Spring Security2的例子。关于Spring Security 2和3的细节差异,可以参照第十三章:
迁移至Spring Security,可以作为将示例代码转换成Spring Security2的帮助材料。
不要以本应用作为基础去构建真实的Pet Store在线应用。本应用已经有意识的
构建地简单并关注于本书所要阐述的概念和配置。
JBCP Pets应用的架构
本应用遵循标准的三层结构,包括web层、服务层和数据访问层,如下图所示:
Spring Security 3 中文版
web层封装了MVC的代码和功能。在示例代码中,我们使用了Spring MVC框架,但是我们可以一样容易的使用Spring Web Flow,Struts甚至是一个对Spring友好的web stack如Apache Wicket。
在一个典型使用Spring Security的web应用中,大量配置和参数代码位于web层。所以,如果你没有web应用开发,尤其是Spring MVC的经验,在我们进入更复杂的话题前,你最好仔细看一下基础代码并确保你能理解。再次强调,我们已经尽力让我们的应用简单,把它构建成一个pet store只是为了给它一个合理的名字和轻量级的结构。可以将其与复杂的Java EE Pet Clinic示例作为对比,那个示例代码展现了很多技术的使用指导。
服务层封装了应用的业务逻辑。在示例应用中,我们在数据访问层前做了一个很薄的façade用来描述如何在特殊的点周围保护应用的服务方法。
在典型的web工程中,这一层将会包括业务规则校验,组装和分解BO以及交叉的关注点如审计等。
数据访问层封装了操作数据库表的代码。在很多基于Spring的工程中,这将会在这里发现使用了ORM技术如hibernate或JPA。它为服务层暴露了基于对象的API。在示例代码中,我们使用基本的JDBC功能完成到内存数据库HSQL的持久化。
在典型的web工程中,将会使用更为复杂的数据访问方式。因为ORM,即数据访问,开发人员对其很迷惑。所以为了更清晰,这一部分我们尽可能的对其进行了简化。
应用所使用的技术
我们使用了一些每个Spring程序员都会遇到的技术和工具,以使得示例应用很容易的运行起来。尽管如此,我们还是提供了补充的起步资料信息在附录:参考资料。
我们建立使用如下的IDE以提高开发的效率并使用本书的示例代码:
Eclipse 3.4或3.5 Java EE版本可以在以下地址获得:
Spring IDE2.2(2.2.2或更高)可以在以下地址获得:
在本书的示例和截图中,你会看到Eclipse和Spring IDE,所以我们建议你使用它们。 你可能希望使用免费的Spring Tool Suite(STS)Eclipse插件,它作为Eclipse的一个插件由Spring Source开发,其包含了下一代的Spring IDE功能(可以在以下地址下载:http://www.77cn.com.cn/products/springsource-tool-suite-download)。一些用户不喜欢它的侵入性和SpringSource的标示,但是你如果从事Spring相关的开发,它提供了很多有用的功能。
我们提供了Eclipse3.4兼容的工程以允许你在Eclipse中构建和 …… 此处隐藏:3668字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:标准化农贸市场规划设计说明
下一篇:初二语文阅读训练