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





本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1606179,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
存储 安全 Java
SpringBoot搭建Spring Security 入门
SpringBoot搭建Spring Security 入门
108 0
|
2月前
|
安全 Java 数据库
后端进阶之路——万字总结Spring Security与数据库集成实践(五)
后端进阶之路——万字总结Spring Security与数据库集成实践(五)
|
1月前
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
52 0
|
2月前
|
XML 安全 前端开发
SpringSecurity系列(四) Spring Security 实现权限树形菜单
SpringSecurity系列(四) Spring Security 实现权限树形菜单
|
2月前
|
安全 Java 数据库
【SpringSecurity】Spring Security 和Shiro对比
【SpringSecurity】Spring Security 和Shiro对比
79 0
|
11天前
|
安全 数据安全/隐私保护
Springboot+Spring security +jwt认证+动态授权
Springboot+Spring security +jwt认证+动态授权
|
2月前
|
安全 Java 数据库
【Spring Security】Spring Security 前后端分离认证
【Spring Security】Spring Security 前后端分离认证
62 0
|
2月前
|
XML 安全 Java
SpringSecurity系列(三) Spring Security 表单登录
SpringSecurity系列(三) Spring Security 表单登录
|
2月前
|
安全 JavaScript Java
SpringSecurity系列(一) 初识 Spring Security
SpringSecurity系列(一) 初识 Spring Security
|
3天前
|
安全 Java 数据安全/隐私保护
使用Spring Security进行Java身份验证与授权
【4月更文挑战第16天】Spring Security是Java应用的安全框架,提供认证和授权解决方案。通过添加相关依赖到`pom.xml`,然后配置`SecurityConfig`,如设置用户认证信息和URL访问规则,可以实现应用的安全保护。认证流程包括请求拦截、身份验证、响应生成和访问控制。授权则涉及访问决策管理器,如基于角色的投票。Spring Security为开发者构建安全应用提供了全面且灵活的工具,涵盖OAuth2、CSRF保护等功能。