Spring Security 教程

 

Spring Security 教程

 

在这篇文章中,我们将讨论Spring框架 “安全性”模块基础知识。我们将在即将发布的帖子中开发一些简单而先进的示例。

现在,开发安全应用程序是避免故障,窃取或黑客攻击我们的机密数据或未经授权访问的非常重要的方面。我们可以使用Spring Security Module开发Secure应用程序来限制对我们的应用程序的访问。

目录[ 隐藏 ]

春天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

春天4安全

 

在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来开发我们的应用程序。

如果您喜欢我的帖子或有任何问题/建议,请给我发表评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值