Spring Security是什么?

Spring Security为基于J2EE企业应用软件提供了全面安全服务。 特别是使用领先的J2EE解决方案-spring框架开发的企业软件项目。 如果你没有使用Spring开发企业软件,我们热情的推荐你仔细研究一下。 熟悉Spring-尤其是依赖注入原理-将帮助你更快的掌握Spring Security。
人们使用Spring Security有很多种原因, 不过通常吸引他们的是在J2EE Servlet规范或EJB规范中找不到典型企业应用场景的解决方案。 提到这些规范,特别要指出的是它们不能在WAR或EAR级别进行移植。这样,如果你更换服务器环境, 就要,在新的目标环境进行大量的工作,对你的应用系统进行重新配置安全。 使用Spring Security解决了这些问题,也为你提供了很多有用的,可定制的其他安全特性。
你可能知道,安全包括两个主要操作, “认证”和“验证”(或权限控制)。 这就是Spring Security面向的两个主要方向。“认证” 是为用户建立一个他所声明的主体的过程, (“主体”一般是指用户,设备或可以在你系统中执行行动的其他系统)。 “验证”指的一个用户能否在你的应用中执行某个操作。 在到达授权判断之前,身份的主体已经由身份验证过程建立了。 这些概念是通用的,不是Spring Security特有的。
在身份验证层面,Spring Security广泛支持各种身份验证模式。 这些验证模型绝大多数都由第三方提供,或正在开发的有关标准机构提供的,例如Internet Engineering Task Force。 作为补充,Spring Security也提供了自己的一套验证功能。 Spring Security目前支持认证一体化和如下认证技术:
  • HTTP BASIC authentication headers (一个基于IEFT RFC的标准)
  • HTTP Digest authentication headers (一个基于IEFT RFC的标准)
  • HTTP X.509 client certificate exchange (一个基于IEFT RFC的标准)
  • LDAP (一个非常常见的跨平台认证需要做法,特别是在大环境)
  • Form-based authentication (提供简单用户接口的需求)
  • OpenID authentication
  • 基于预先建立的请求头进行认证 (比如Computer Associates Siteminder)
  • JA-SIG Central Authentication Service (也被称为CAS,这是一个流行的开源单点登录系统)
  • Transparent authentication context propagation for Remote Method Invocation (RMI) and HttpInvoker (一个Spring远程调用协议)
  • Automatic "remember-me" authentication (这样你可以设置一段时间,避免在一段时间内还需要重新验证)
  • Anonymous authentication (允许任何调用,自动假设一个特定的安全主体)
  • Run-as authentication (这在一个会话内使用不同安全身份的时候是非常有用的)
  • Java Authentication and Authorization Service (JAAS)
  • JEE Container autentication (这样,你可以继续使用容器管理认证,如果想的话)
  • Kerberos
  • Java Open Source Single Sign On (JOSSO) *
  • OpenNMS Network Management Platform *
  • AppFuse *
  • AndroMDA *
  • Mule ESB *
  • Direct Web Request (DWR) *
  • Grails *
  • Tapestry *
  • JTrac *
  • Jasypt *
  • Roller *
  • Elastic Plath *
  • Atlassian Crowd *
  • 你自己的认证系统(向下看)
许多独立软件供应商(ISVs, independent software vendors)采用Spring Security,是因为它拥有丰富灵活的验证模型。 这样,无论终端用户需要什么,他们都可以快速集成到系统中,不用花很多功夫,也不用让用户改变运行环境。 如果上述的验证机制都没有满足你的需要,Spring Security是一个开放的平台,编写自己的验证机制是十分简单的。 Spring Security的许多企业用户需要整合不遵循任何特定安全标准的“遗留”系统,Spring Security在这类系统上也表现的很好。
有时基本的认证是不够的。 有时你需要根据在主体和应用交互的方式来应用不同的安全措施。 比如,你可能,为了保护密码,不被窃听或受到中间人攻击,希望确保请求只通过HTTPS到达。 这在防止暴力攻击保护密码恢复过程特别有帮助, 或者简单的,让人难以复制你的系统的关键字内容。 为了帮助你实现这些目标,Spring Security完全支持自动“信道安全”, 整合jcaptcha一体化进行人类用户检测。
Spring Security不仅提供认证功能,也提供了完备的授权功能。 在授权方面主要有三个领域,授权web请求,授权被调用方法,授权访问单个对象的实例。 为了帮你了解它们之间的区别,对照考虑授在Servlet规范web模式安全,EJB容器管理安全,和文件系统安全方面的授权方式。 Spring Security在所有这些重要领域都提供了完备的能力,我们将在这份参考指南的后面进行探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值