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-08-02 12:02:33

Spring Security概论的相关文章

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

CAS 与 Spring Security 3整合配置详解

一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分.用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统.用户授权指的是验证某个用户是否有权限执行某个操作.在一个系统中,不同用户所具有的权限是不同的.比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改.一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限. 对于上面提到的两种应用情景,Spring Security 框

spring security+mybatis+springMVC构建一个简单的项目

1.引用 spring security ,这是一种基于spring AOP和Servlet的过滤安全框架.它提供全面的安全性解决方案,同时在web请求级和方法的调用级处理身份确认和授权.在spring framework基础上,spring security充分利用了依赖注入(DI,Dependency Injection)和AOP技术. 下面就让我们用一个小的晓得项目来出初步了解Spring Security 的强大功能吧. 2.项目实战    1)项目的技术架构:maven+spring

Spring Security视频地址

1:Spring Security视频 附件为txt文档内含百度云盘的链接,由于视频太大,所以只能分享链接了..... http://pan.baidu.com/share/link?shareid=2726555995&uk=706734182  提取码:60tb 2:Spring Securoty: 链接:http://pan.baidu.com/s/1o6x2sye 密码:fi2x 3:链接: http://pan.baidu.com/s/1pJnylQF 密码: wj6b 4:http:

spring security oauth2 jwt 认证和资源分离的配置文件(java类配置版)

最近再学习spring security oauth2.下载了官方的例子sparklr2和tonr2进行学习.但是例子里包含的东西太多,不知道最简单最主要的配置有哪些.所以决定自己尝试搭建简单版本的例子.学习的过程中搭建了认证和资源在一个工程的例子,将token存储在数据库的例子等等 .最后做了这个认证和资源分离的jwt tokens版本.网上找了一些可用的代码然后做了一个整理, 同时测试了哪些代码是必须的.可能仍有一些不必要的代码在,欢迎大家赐教. 一.创建三个spring boot 工程,分

springsecurity启动出现org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: You must use a 3.0 schema with Spring Security 3.0.

在换了spring-security的jar包以后启动出现org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: You must use a 3.0 schema with Spring Security 3.0.Please update your schema declarations to the 3.0.3 schema (spring-securi

REST Security with JWT using Java and Spring Security

Security Security is the enemy of convenience, and vice versa. This statement is true for any system, virtual or real, from the physical house entrance to web banking platforms. Engineers are constantly trying to find the right balance for the given

Spring、Spring MVC、Mybatis、Dubbo、Spring security整合日记(一)

使用Idea 15作为开发工具 一.四个模块 api    作为接口,jar包,提供依赖 core  基础模块,提供实体类,工具类,jar包,提供依赖 consumer dubbo中的消费者,控制层,war包,依赖api.core provider dubbo中的提供者,业务层,war包,依赖api.core 二.Maven依赖 ①.dubbo(parent) pom.xml <groupId>com.zhf</groupId> <artifactId>dubbo<

spring security注解(1)

Chapter 15. 基于表达式的权限控制 Spring Security 3.0介绍了使用Spring EL表达式的能力,作为一种验证机制 添加简单的配置属性的使用和访问决策投票,就像以前一样. 基于表达式的安全控制是建立在相同架构下的,但是允许使用复杂的布尔逻辑 包含在单独的表达式中. 15.1. 概述 Spring Security使用Spring El来支持表达式,你应该看一下如何工作的 如果你对深入了解这个话题感兴趣的话.表达式是执行在一个"根对象" 上的,作为一部分执行上