Spring Security 教程
Spring Security 教程
在这篇文章中,我们将讨论Spring框架 “安全性”模块基础知识。我们将在即将发布的帖子中开发一些简单而先进的示例。
现在,开发安全应用程序是避免故障,窃取或黑客攻击我们的机密数据或未经授权访问的非常重要的方面。我们可以使用Spring Security Module开发Secure应用程序来限制对我们的应用程序的访问。
目录[ 隐藏 ]
- 1春季4安全
- 1.1 Spring Acegi Security的缺点
- 1.2什么是Spring Security?
- 1.3 Spring 4安全功能
- 1.4 Spring 4安全级别
- 1.5 Spring 4安全优势
- 1.6 Spring 4安全子模块
- 1.7 Spring Security Maven
- 1.8 Spring Security Gradle
春天4安全
最初,Spring Framework使用单独的第三方框架来支持Spring Applications Security:Acegi Security。但是开发安全应用程序并不容易,并且有一些缺点。
Spring Acegi Security的缺点
- 很多XML配置
- 学习曲线太多了
- 不支持注释
为了避免所有这些问题,Spring Team(Pivotal Team)将“Acegi Security”框架集成到Spring Framework中作为“Spring Security”模块。
Spring 4 Framework具有以下模块来为基于Spring的应用程序提供安全性:
- 春季安全
- Spring Security SAML
- Spring Security OAuth
- Spring Security Kerberos
- Spring Cloud Security
在Spring Framework中,“Spring Security”模块是其他Spring Security模块的基础模块。
我们将在本文中讨论“Spring Security”模块的一些基础知识。我们将在即将发布的帖子中讨论一些简单而先进的实时示例。
一旦我们在即将发布的帖子中熟悉“Spring Security”模块,我们将回到其余四个模块。
什么是Spring Security?
Spring Security是Spring Framework的安全模块之一。它是一个Java SE / Java EE安全框架,为Web应用程序或企业应用程序提供身份验证,授权,SSO和其他安全功能。
Spring Security官方网站:http://projects.spring.io/spring-security/
Spring Security Documentation网站:http://docs.spring.io/spring-security/site/docs/
最新稳定的Spring Security Module版本是“4.0.2.RELEASE”
Spring 4安全功能
Spring 3.x安全框架提供以下功能:
- 身份验证和授权。
- 支持BASIC,摘要和基于表单的身份验证。
- 支持LDAP身份验证。
- 支持OpenID身份验证。
- 支持SSO(单点登录)实施。
- 支持跨站点请求伪造(CSRF)实施。
- 通过HTTP Cookie支持“记住我”功能。
- 支持ACL的实现
- 支持“通道安全”,这意味着在HTTP和HTTPS之间自动切换。
- 支持I18N(国际化)。
- 支持JAAS(Java身份验证和授权服务)。
- 使用Spring WebFlow Framework支持流程授权。
- 使用Spring Web Services支持WS-Security。
- 支持XML配置和注释。非常少或最小的XML配置。
Spring 4.x安全框架支持以下新功能:
- 支持WebSocket安全性。
- 支持Spring数据集成。
- CSRF令牌参数解析器。
我们将在后续帖子中开发一些简单的示例来演示这些功能。
Spring 4安全级别
Spring Security支持以下两个授权级别
- 方法级别授权
- URL级别授权
注意
Spring Security通过使用AOP(面向方面编程)支持“方法级安全性”,这意味着通过Aspects。Spring Security通过使用Servlet过滤器支持“URL级别安全性”。
Spring 4安全优势
Spring 4安全框架提供以下优点:
- 开源安全框架
- 灵活,易于开发和单元测试应用程序
- 声明性安全编程
- 易于扩展
- 易于维护
- 充分利用Spring DI(依赖注入)和AOP。
- 我们可以开发松散耦合应用程序。
Spring 4安全子模块
Spring 4安全模块又分为11个子模块。它有以下子模块:
- Spring安全核心模块
- Spring安全配置模块
- Spring Security Web模块
- Spring安全标记库模块
- Spring Security AspectJ模块
- Spring安全ACL模块
- Spring Security LDAP模块
- Spring Security OpenID模块
- Spring Security CAS模块
- Spring Security Cryptography Module
- Spring Security Remoting模块
在Spring Framework的安全子模块中,Spring Security核心子模块是所有安全子模块的基础模块。
为了支持这11个Spring Security模块,Spring框架有以下jar:
- 弹簧安全核心4.0.2.RELEASE.jar
- 弹簧安全配置,4.0.2.RELEASE.jar
- 弹簧安全网络4.0.2.RELEASE.jar
- 弹簧安全标签库,4.0.2.RELEASE.jar
- 弹簧安全方面,4.0.2.RELEASE.jar
- 弹簧安全ACL-4.0.2.RELEASE.jar
- 弹簧安全LDAP的4.0.2.RELEASE.jar
- 弹簧安全OpenID的4.0.2.RELEASE.jar
- 弹簧安全-CAS-4.0.2.RELEASE.jar
- 弹簧安全加密4.0.2.RELEASE.jar
- 弹簧安全远程-4.0.2.RELEASE.jar
几乎所有Spring Security JAR都有类似的Maven或Gradle依赖项,如下所示:
Spring Security Maven
<dependencies><dependency><groupId>org.springframework.security</groupId><artifactId>[Spring Security Module Name Here]</artifactId><version>4.0.2.RELEASE</version></dependency>
</dependencies>
Spring Security Gradle
dependencies {
compile
'org.springframework.security:[Spring Security Module Name Here]:4.0.2.RELEASE'
}
pom.xml
<dependencies><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>4.0.2.RELEASE</version></dependency>
</dependencies>
build.gradle
dependencies {compile 'org.springframework.security:spring-security-core:4.0.2.RELEASE'
}
这就是Spring 4安全模块的基础知识。是时候开始开发一些简单的例子来探索Spring Security模块了。
我们将使用Spring STS Suite IDE,Maven或Gradle Build Tool和Java 7/8来开发我们的应用程序。
如果您喜欢我的帖子或有任何问题/建议,请给我发表评论。
Spring Security 教程相关推荐
- Spring Security教程
Spring Security教程 Web系统中登录认证(Authentication)的核心就是凭证机制,无论是Session还是JWT,都是在用户成功登录时返回给用户一个凭证,后续用户访问接口需携 ...
- 史上最简单的Spring Security教程(十九):AccessDecisionVoter简介及自定义访问权限投票器
为了后续对 AccessDecisionManager 的介绍,我们先来提前对 AccessDecisionVoter 做个简单的了解,然后,在捎带手自定义一个 AccessDecisionVoter ...
- Spring Security教程 第一弹 初识spring security
写在前面的话 更多Spring与微服务相关的教程请戳这里 Spring与微服务教程合集 1.概述 核心概念: 认证 授权:Spring Security不仅支持基于URL对Web的请求授权,还支持方法 ...
- Spring Security教程 Vol 9. AccessDecisionManager组件介绍
第九期 AccessDecisionManager组件介绍 作为访问控制的最后一期,但确实整个章节部分里最简单的一部分.ConfigAttribute负责表述规则,AccessDecisionVote ...
- microsoftsql新建登录用户登录失败_史上最简单的Spring Security教程(九):自定义用户登录失败页面...
生活中肯定存在这样的场景,在登录某个网站时,难免会忘记密码,或是验证码输入错误,造成多次尝试.所以,有必要适度的提醒用户,到底是什么原因造成了登录失败,如用户名密码不正确.验证码错误等等.由于 Spr ...
- 史上最简单的Spring Security教程(二十八):CA登录与默认用户名密码登录共存详细实现及配置
在前面的文章中,我们自定义了一些CA登录相关的类,如 CertificateAuthorityAuthenticationToken.CertificateAuthorityAuthenticati ...
- 史上最简单的Spring Security教程(八):用户登出成功LogoutSuccessHandler高级用法
大多数业务场景下,自定义登出成功页面也满足不了一些要求,更别提默认的登出成功页面.这时候,就需要别的方案支持,幸运的是,Spring Security 框架还真就非常贴心的提供了这样一个接口 Log ...
- Spring Security教程外篇(1)---- AuthenticationException异常详解
这个异常是在登录的时候出现错误时抛出的异常,比如账户锁定,证书失效等,先来看下AuthenticationException常用的的子类: UsernameNotFoundException 用户找不 ...
- Spring Security实战教程2021版即将下线,2022版即将上线!
在2021年2月份,我把在2020年总结的Spring Security 学习曲线PDF,共计240000字的教程免费开放给了各位同学. 在近一年的时间里,不少同学借助于这个PDF,加上自己的努力逐渐 ...
最新文章
- 基于visual Studio2013解决面试题之0403串联字符串
- 基于svnserve的SVN服务器(windows下安装与配置)
- 极速开发之Spring Boot五种热部署方式
- 你想要的宏基因组-微生物组知识全在这(181101)
- HTTP协议之post multipart/form-data数据类型实例
- [20180102]11g的V$SORT_USAGE视图.txt
- ACM入门之【差分】
- vector 源码及使用
- 软件压力测试linux服务器,使用http_load来给Linux系统的服务器做压力测试
- mysql 换服务器_更换MYSQL后数据库连接问题
- 玲珑学院 1138 - 震惊,99%+的中国人都会算错的问题
- VC 无标题栏对话框移动
- metal slug java_推荐一款极速CAJ阅读器:稻壳阅读器
- Mac更新Big Sur或者Monterey后没有管理员账户或当前账户没有管理员权限或rm /var/db/.AppleSetupDone: No such file or directory解决方案
- VS2010中malloc的使用
- 电阻参数_电阻的基础知识和参数介绍
- 开学送给她的礼物(Python实现)
- VS2008向工具箱中添加控件解决 未能实例化 设计时授权
- pbl和sbl_ROKSO、SBL、XBL、PBL、DBL 是什么意思?
- LeetCode-1225. 报告系统状态的连续日期(困难)
热门文章
- DotFuscator使用步骤
- 使用 jQuery Mobile 与 HTML5 开发 Web App (九) —— jQuery Mobile 页面与对话框
- HTML5 Web Storage用法
- JQuery实现的Table表头固定展示效果
- Drupal 7 主题模板概述
- 利用 Cache_Lite代替codeigniter中的cache功能
- python——asyncio模块实现协程、异步编程(一)
- 《C和指针》——数组的存储顺序
- 【AI视野·今日NLP 自然语言处理论文速览 第七期】Tue, 15 Jun 2021
- 计算机网络太难?如何系统自学计算机网络?