前言

Spring Security 为基于Java EE的企业软件应用程序提供一个全面的解决方案。正如你将从这个参考指南发现的,我们试图为你提供一个有用的并且高度可配置的安全系统。

安全是一个不断移动的目标,采取一个全面的全系统的方法很重要。在安全领域,我们鼓励你采取”layers of security””(安全层),这样每一层尽可能的在自己范围内保证安全,连续的层提供额外的安全性。安全层更密集你的程序将更加健壮更加安全。在最底层,你需要处理传输安全和系统识别这些问题,以减少中间人攻击。接下来,您将通常利用防火墙,或许使用VPN或者IP担保以确保只有授权的系统能够尝试连接。在企业环境中你可以部署一个DMZ将面向公众的服务器和数据库以及应用服务器分隔开来。你的操作系统也将扮演重要的部分,解决问题,类似,使用非特权用户运行进程和提高文件系统安全性。操作系统通常会配置自己的防火墙。但愿在某处前进的道路上,你会试图阻止拒绝服务攻击和暴力攻击。一个入侵检测系统将在监视和响应攻击时非常有用,这种系统能采取保护动作,比如实时阻断违规的TCP/IP地址。在更高的层,你的Java虚拟机希望被配置为尽量减少不同的Java类型授予的权限,然后将您的应用程序将增加其自身的指定域特定的安全配置。Spring Security 使后者,应用程序安全更加容易。

当然你需要妥善处理上面提到的所有安全层,连同各层的管理因素。这样的管理因素大体包括安全公告监测、补丁、人员审查、审计、变更控制、工程管理系统、数据备份、灾难恢复、性能基准测试、负载监控、集中式日志记录、事件响应程序等。

Spring Security 致力于在企业应用程序安全层对你进行帮助,你会发现这里有如此不同的需求正如业务问题的领域。一个银行应用程序具有与电子商务应用不同的需求。电子商务应用程序同企业销售自动化工具有不同的需求。这些定制需求使得应用安全有趣、有挑战性和有回报。

请阅读第二部分,从“入门”开始。这一章节将为您介绍的框架和基于命名空间的配置系统,你可以配置好应用,很快运行起来。阅读第三部分“架构和实现”,来了解Spring Security如何工作和一些你可能需要使用的类。本指南的其余部分是更传统的引用样式结构,设计用于按需进行阅读。我们也建议您尽可能阅读完一般的应用安全问题。Spring Security不是万能的,不能解决所有安全问题。重要的是在应用设计开始之初就考虑到安全性。后期改造不是一个好的主意。特别是,如果你正在构建一个Web应用程序,你应该知道许多潜在的漏洞,比如:跨站脚本、请求伪造和会话劫持。这些你已开始就应该考虑。这个网站 OWASP 维护了一个10大网站应用漏洞列表和一些有用的参考信息。

我们希望这个参考手册对你来说比较有用,欢迎你的反馈和建议。

最后欢迎你来到Spring Security 社区