Spring Security简介

1. Spring Security 是什么?


Spring Security是一个强大的和高度可定制的身份验证和访问控制框架,它的前身是 Acegi Security

Spring Security着重于为Java应用程序提供身份验证和授权。身份验证是为用户建立一个他所声明的主体的过程(主体一般式指用户,设备或可以在你系统中执行动作的其他系统)。授权指的是一个用户能否在你的应用中执行某个操作,在到达授权判断之前,身份的主体已经由身份验证过程建立了。这些概念是通用的,并不是Spring Security特有的。

  2. Spring Security特征是什么?

Spring Security具有以下特征:

全面的和可扩展的支持身份验证和授权

防止会话固定攻击,比如点击劫持,跨站请求伪造等

Servlet API 集成

与Spring Web MVC集成

3.  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)

Container integration with JBoss, Jetty, Resin and Tomcat (这样,你可以继续使用容器管理认证,如果想的话)

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 *


4. 为什么使用Spring Security?

许多独立软件供应商(ISVs, independent software vendors)采用Spring Security,是因为它拥有丰富灵活的验证模型。 这样,无论终端用户需要什么,他们都可以快速集成到系统中,不用花很多功夫,也不用让用户改变运行环境。 如果上述的验证机制都没有满足你的需要,Spring Security是一个开放的平台,编写自己的验证机制是十分简单的。 Spring Security的许多企业用户需要整合不遵循任何特定安全标准的“遗留”系统,Spring Security在这类系统上也表现的很好。

有时基本的认证是不够的。 有时你需要根据在主体和应用交互的方式来应用不同的安全措施。 比如,你可能,为了保护密码,不被监听或受到中间人攻击,希望确保请求只通过HTTPS到达。 或者,你希望确保发起请求的是一个真正的人,而不是机器人或其他自动化程序。 这对保护找回密码不被暴力攻击特别有帮助,或者让别人更难复制你程序中的关键内容。 为了帮助你实现这些目标,Spring Security支持自动“通道安全”,整合jcaptcha一体化进行人类用户检测。

Spring Security不仅提供认证功能,也提供了完备的授权功能。 在授权方面主要有三个领域,授权web请求,授权被调用方法,授权访问单个对象的实例。 为了帮你了解它们之间的区别,对照考虑授在Servlet规范web模式安全,EJB容器管理安全,和文件系统安全方面的授权方式。 Spring Security在所有这些重要领域都提供了完备的能力,我们将在这份参考指南的后面进行探讨。

 5. 怎样获得Spring Security?


Spring Security是一个开源项目,我们可以通过subversion获得源代码。但大部分情况下,其实我们只需要Spring Security的jar就可以了。我们可以从 Spring Security 官网下载打包好的包,也可以从Maven中央仓库下载获得。

目前Spring Security最新的版本是4.0.0 RC1,但稳定版仍然是3.2.5

时间: 2024-10-06 00:10:49

Spring Security简介的相关文章

Spring Security: Spring Security简介

Spring Security简介 安全领域的两大核心是:Authentication和Authorization . ·Authentication是身份认证,把控一个系统的入口. ·Authorization是授权,用于进行系统中功能的访问控制. Spring Security 为J2EE项目提供了一个综合的解决方案,支持Authentication和Authorization. Spring Security对于Authentication提供了很宽泛的支持.集成了多种认证技术: HTTP

Spring Security入门Demo

一.spring Security简介 SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架.它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权.在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术. 二.建立工程 参考http://blog.csdn.net/haishu_zheng/article/details/51490

[转]Spring Security学习总结一

[总结-含源码]Spring Security学习总结一(补命名空间配置) Posted on 2008-08-20 10:25 tangtb 阅读(43111) 评论(27)  编辑  收藏 所属分类: Spring .Spring Security Spring Security学习总结一 在认识Spring Security之前,所有的权限验证逻辑都混杂在业务逻辑中,用户的每个操作以前可能都需要对用户是否有进行该项 操作的权限进行判断,来达到认证授权的目的.类似这样的权限验证逻辑代码被分散

使用 Spring Security 保护 Web 应用的安全

使用 Spring Security 保护 Web 应用的安全 安全一直是 Web 应用开发中非常重要的一个方面.从安全的角度来说,需要考虑用户认证和授权两个方面.为 Web 应用增加安全方面的能力并非一件简单的事情,需要考虑不同的认证和授权机制.Spring Security 为使用 Spring 框架的 Web 应用提供了良好的支持.本文将详细介绍如何使用 Spring Security 框架为 Web 应用提供安全支持. 4 评论: 成 富, 软件工程师, IBM 中国软件开发中心 201

Spring security基本使用

Spring security 学习记录 1.Spring security 简介 ? Spring Security 为 Java EE-based 企业软件应用程序提供全面的安全服务(也就是用户登录页面和相关权限的控制),应用的安全性包括用户认证( Authentication )和用户权限( Authorization )两部分. 用户认证是确定某个用户是否有进入系统的权限,使用用户名密码去认证,也就是所谓的登录:用户权限是确定哪些用户有哪些功能权限,一般都是按角色. 2.主要过滤器 ?

SpringBoot学习(二)—— springboot快速整合使用spring security组

Spring Security 简介 spring security的核心功能为认证(Authentication),授权(Authorization),即认证用户是否能访问该系统,和授权用户可以在系统中进行哪些操作. 引入spring security组件 在 pom.xml 中加入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte

Spring Security认证简介

认证简介 认证过程 用户使用用户名和密码进行登录. Spring Security 将获取到的用户名和密码封装成一个实现了 Authentication 接口的 UsernamePasswordAuthenticationToken. 将上述产生的 token 对象传递给 AuthenticationManager 进行登录认证. AuthenticationManager 认证成功后将会返回一个封装了用户权限等信息的 Authentication 对象. 通过调用 SecurityContex

spring security(原名Acegi Security)的使用简介

官网:http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/ 定义:Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向

Spring Security LDAP简介

1.概述 在本快速教程中,我们将学习如何设置Spring Security LDAP. 在我们开始之前,了解一下LDAP是什么? - 它代表轻量级目录访问协议.它是一种开放的,与供应商无关的协议,用于通过网络访问目录服务. 2. Maven Dependency 首先,让我们看看我们需要的maven依赖项: <dependency> <groupId>org.springframework.security</groupId> <artifactId>spr