《Spring Security3》第一章第一部分翻译

本文为转载学习web

原文连接:http://lengyun3566.iteye.com/blog/1069004数据库

第一章   一个不安全应用的剖析

    毫无疑问,安全是任何一个写于21世纪的web工程中最重要的架构组件之一。在这样一个时代,计算机病毒、犯罪以及不合法的员工一直存在而且持续考验软件的安全性试图有所收益,所以对你负责的项目综合合理地使用安全是相当重要的一个元素。安全

    本书的写做遵循了这样的一个开发模式,这个模式咱们感受提供了一个有用的前提来解决复杂的话题——即便用一个基于Spring3web工程做为基础,以理解使用Spring Security3使其保证安全的概念和策略。架构

无论你是否是已经使用Spring Security仍是只是对这个软件有兴趣,就都会在本书中获得有用的信息。在本节的内容中,你可以:框架

  • 检查一个虚拟安全审计的结果学习

  • 讨论web应用一般的一些安全问题网站

  • 学习软件安全中的几个核心词汇和概念spa

    若是你已经熟悉基本的安全术语,你能够直接跳到第二章:Spring Security起步,在哪里咱们将涉及这个框架的细节。hibernate

安全审计

    这是你做为软件开发人员在Jim Bob Circle Pant Online Pet Store(JBCPPets.com)工做的一个清晨,你正在喝你的第一杯咖啡的时候,收到了你主管的如下邮件:设计

To: Star Developer <stardev@jbcppets.com>

From: Super Visor <theboss@jbcppets.com>

Subject: 安全审计

Star,

今天,有一个第三方的安全公司要审计咱们的电子商务网站。尽管我知道你在设计网站的时候已经把安全考虑在内了,但请随时解决他们可能发现的问题。

                                                                                                                                                 Super Visor

    什么?你在设计应用的时候并无过多考虑安全的问题?彷佛你有许多的东西要向安全审计人员学习。首先,让咱们花一点时间检查一下要审计的应用吧。

关于样例应用

    尽管在本书的后续内容中咱们要模拟虚拟的场景,但这个应用的设计以及咱们对其进行的改造都是基于现实世界中真实使用Spring的工程。

    这个应用的设计很简单,使得咱们可以关注于重要的安全方面而不会过多关注ORM的细节和复杂的UI技术。咱们指望你可以参考其余的资料来掌握示例代码中所涉及功能的技术。

    代码是基于SpringSpring Security3编写而成的,可是它很容易改变为Spring Security2的例子。关于Spring Security 23的细节差别,能够参照第十三章:迁移至Spring Security,能够做为将示例代码转换成Spring Security2的帮助材料。

    不要以本应用做为基础去构建真实的Pet Store在线应用。本应用已经有意识的构建地简单并关注于本书所要阐述的概念和配置。

JBCP Pets应用的架构

本应用遵循标准的三层结构,包括web层、服务层和数据访问层:

    web层封装了MVC的代码和功能。在示例代码中,咱们使用了Spring MVC框架,可是咱们能够同样容易的使用Spring Web FlowStruts甚至是一个对Spring友好的web stackApache Wicket

    在一个典型使用Spring Securityweb应用中,大量配置和参数代码位于web层。因此,若是你没有web应用开发,尤为是Spring MVC的经验,在咱们进入更复杂的话题前,你最好仔细看一下基础代码并确保你能理解。再次强调,咱们已经尽力让咱们的应用简单,把它构建成一个pet store只是为了给它一个合理的名字和轻量级的结构。能够将其与复杂的Java EE Pet Clinic示例做为对比,那个示例代码展示了不少技术的使用指导。

    服务层封装了应用的业务逻辑。在示例应用中,咱们在数据访问层前作了一个很薄的fa&ccedil;ade用来描述如何在特殊的点周围保护应用的服务方法。

    在典型的web工程中,这一层将会包括业务规则校验,组装和分解BO以及交叉的关注点如审计等。

    数据访问层封装了操做数据库表的代码。在不少基于Spring的工程中,这将会在这里发现使用了ORM技术如hibernateJPA。它为服务层暴露了基于对象的API。在示例代码中,咱们使用基本的JDBC功能完成到内存数据库HSQL的持久化。

    在典型的web工程中,将会使用更为复杂的数据访问方式。由于ORM,即数据访问,开发人员对其很迷惑。因此为了更清晰,这一部分咱们尽量的对其进行了简化。

相关文章
相关标签/搜索