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的缺点

  1. 很多XML配置
  2. 学习曲线太多了
  3. 不支持注释

为了避免所有这些问题,Spring Team(Pivotal Team)将“Acegi Security”框架集成到Spring Framework中作为“Spring Security”模块。

Spring 4 Framework具有以下模块来为基于Spring的应用程序提供安全性:

  1. 春季安全
  2. Spring Security SAML
  3. Spring Security OAuth
  4. Spring Security Kerberos
  5. 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安全框架提供以下功能:

  1. 身份验证和授权。
  2. 支持BASIC,摘要和基于表单的身份验证。
  3. 支持LDAP身份验证。
  4. 支持OpenID身份验证。
  5. 支持SSO(单点登录)实施。
  6. 支持跨站点请求伪造(CSRF)实施。
  7. 通过HTTP Cookie支持“记住我”功能。
  8. 支持ACL的实现
  9. 支持“通道安全”,这意味着在HTTP和HTTPS之间自动切换。
  10. 支持I18N(国际化)。
  11. 支持JAAS(Java身份验证和授权服务)。
  12. 使用Spring WebFlow Framework支持流程授权。
  13. 使用Spring Web Services支持WS-Security。
  14. 支持XML配置和注释。非常少或最小的XML配置。

Spring 4.x安全框架支持以下新功能:

  1. 支持WebSocket安全性。
  2. 支持Spring数据集成。
  3. CSRF令牌参数解析器。

我们将在后续帖子中开发一些简单的示例来演示这些功能。

Spring 4安全级别

Spring Security支持以下两个授权级别

  1. 方法级别授权
  2. URL级别授权

注意
Spring Security通过使用AOP(面向方面​​编程)支持“方法级安全性”,这意味着通过Aspects。Spring Security通过使用Servlet过滤器支持“URL级别安全性”。

Spring 4安全优势

Spring 4安全框架提供以下优点:

  1. 开源安全框架
  2. 灵活,易于开发和单元测试应用程序
  3. 声明性安全编程
  4. 易于扩展
  5. 易于维护
  6. 充分利用Spring DI(依赖注入)和AOP。
  7. 我们可以开发松散耦合应用程序。

Spring 4安全子模块

Spring 4安全模块又分为11个子模块。它有以下子模块:

  1. Spring安全核心模块
  2. Spring安全配置模块
  3. Spring Security Web模块
  4. Spring安全标记库模块
  5. Spring Security AspectJ模块
  6. Spring安全ACL模块
  7. Spring Security LDAP模块
  8. Spring Security OpenID模块
  9. Spring Security CAS模块
  10. Spring Security Cryptography Module
  11. Spring Security Remoting模块

在Spring Framework的安全子模块中,Spring Security核心子模块是所有安全子模块的基础模块。

为了支持这11个Spring Security模块,Spring框架有以下jar:

  1. 弹簧安全核心4.0.2.RELEASE.jar
  2. 弹簧安全配置,4.0.2.RELEASE.jar
  3. 弹簧安全网络4.0.2.RELEASE.jar
  4. 弹簧安全标签库,4.0.2.RELEASE.jar
  5. 弹簧安全方面,4.0.2.RELEASE.jar
  6. 弹簧安全ACL-4.0.2.RELEASE.jar
  7. 弹簧安全LDAP的4.0.2.RELEASE.jar
  8. 弹簧安全OpenID的4.0.2.RELEASE.jar
  9. 弹簧安全-CAS-4.0.2.RELEASE.jar
  10. 弹簧安全加密4.0.2.RELEASE.jar
  11. 弹簧安全远程-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 教程相关推荐

  1. Spring Security教程

    Spring Security教程 Web系统中登录认证(Authentication)的核心就是凭证机制,无论是Session还是JWT,都是在用户成功登录时返回给用户一个凭证,后续用户访问接口需携 ...

  2. 史上最简单的Spring Security教程(十九):AccessDecisionVoter简介及自定义访问权限投票器

    为了后续对 AccessDecisionManager 的介绍,我们先来提前对 AccessDecisionVoter 做个简单的了解,然后,在捎带手自定义一个 AccessDecisionVoter ...

  3. Spring Security教程 第一弹 初识spring security

    写在前面的话 更多Spring与微服务相关的教程请戳这里 Spring与微服务教程合集 1.概述 核心概念: 认证 授权:Spring Security不仅支持基于URL对Web的请求授权,还支持方法 ...

  4. Spring Security教程 Vol 9. AccessDecisionManager组件介绍

    第九期 AccessDecisionManager组件介绍 作为访问控制的最后一期,但确实整个章节部分里最简单的一部分.ConfigAttribute负责表述规则,AccessDecisionVote ...

  5. microsoftsql新建登录用户登录失败_史上最简单的Spring Security教程(九):自定义用户登录失败页面...

    生活中肯定存在这样的场景,在登录某个网站时,难免会忘记密码,或是验证码输入错误,造成多次尝试.所以,有必要适度的提醒用户,到底是什么原因造成了登录失败,如用户名密码不正确.验证码错误等等.由于 Spr ...

  6. 史上最简单的Spring Security教程(二十八):CA登录与默认用户名密码登录共存详细实现及配置

    ​在前面的文章中,我们自定义了一些CA登录相关的类,如 CertificateAuthorityAuthenticationToken.CertificateAuthorityAuthenticati ...

  7. 史上最简单的Spring Security教程(八):用户登出成功LogoutSuccessHandler高级用法

    ​大多数业务场景下,自定义登出成功页面也满足不了一些要求,更别提默认的登出成功页面.这时候,就需要别的方案支持,幸运的是,Spring Security 框架还真就非常贴心的提供了这样一个接口 Log ...

  8. Spring Security教程外篇(1)---- AuthenticationException异常详解

    这个异常是在登录的时候出现错误时抛出的异常,比如账户锁定,证书失效等,先来看下AuthenticationException常用的的子类: UsernameNotFoundException 用户找不 ...

  9. Spring Security实战教程2021版即将下线,2022版即将上线!

    在2021年2月份,我把在2020年总结的Spring Security 学习曲线PDF,共计240000字的教程免费开放给了各位同学. 在近一年的时间里,不少同学借助于这个PDF,加上自己的努力逐渐 ...

最新文章

  1. 基于visual Studio2013解决面试题之0403串联字符串
  2. 基于svnserve的SVN服务器(windows下安装与配置)
  3. 极速开发之Spring Boot五种热部署方式
  4. 你想要的宏基因组-微生物组知识全在这(181101)
  5. HTTP协议之post multipart/form-data数据类型实例
  6. [20180102]11g的V$SORT_USAGE视图.txt
  7. ACM入门之【差分】
  8. vector 源码及使用
  9. 软件压力测试linux服务器,使用http_load来给Linux系统的服务器做压力测试
  10. mysql 换服务器_更换MYSQL后数据库连接问题
  11. 玲珑学院 1138 - 震惊,99%+的中国人都会算错的问题
  12. VC 无标题栏对话框移动
  13. metal slug java_推荐一款极速CAJ阅读器:稻壳阅读器
  14. Mac更新Big Sur或者Monterey后没有管理员账户或当前账户没有管理员权限或rm /var/db/.AppleSetupDone: No such file or directory解决方案
  15. VS2010中malloc的使用
  16. 电阻参数_电阻的基础知识和参数介绍
  17. 开学送给她的礼物(Python实现)
  18. VS2008向工具箱中添加控件解决 未能实例化 设计时授权
  19. pbl和sbl_ROKSO、SBL、XBL、PBL、DBL 是什么意思?
  20. LeetCode-1225. 报告系统状态的连续日期(困难)

热门文章

  1. DotFuscator使用步骤
  2. 使用 jQuery Mobile 与 HTML5 开发 Web App (九) —— jQuery Mobile 页面与对话框
  3. HTML5 Web Storage用法
  4. JQuery实现的Table表头固定展示效果
  5. Drupal 7 主题模板概述
  6. 利用 Cache_Lite代替codeigniter中的cache功能
  7. python——asyncio模块实现协程、异步编程(一)
  8. 《C和指针》——数组的存储顺序
  9. 【AI视野·今日NLP 自然语言处理论文速览 第七期】Tue, 15 Jun 2021
  10. 计算机网络太难?如何系统自学计算机网络?