Spring 框架入门教程
1. 1. Spring 框架 2. 2. Spring 5 3. 3. Spring WebFlux 4. 4. 先介绍一下 Spring 5. 5. 什么是 Spring 依赖注入 6. 6. 什么是 Spring IoC 容器 和 Bean 7. 7. Spring Bean 的生命周期 8. 8. Spring REST 开发 9. 9. Spring REST XML 10. 10. Spring RestTemplate 开发 11. 11. Spring AOP 切面编程 12. 12. Spring AOP 方法调优 13. 13. Spring 注解详解 14. 14. Spring 核心注解之 @Autowired 15. 15. Spring 核心注解之 @RequestMapping 16. 16. Spring MVC 开发样例 17. 17. Spring MVC 开发指南 18. 18. Spring MVC 异常处理机制 19. 19. Spring MVC Validator 20. 20. Spring MVC 拦截器 21. 21. Spring MVC 文件上传 22. 22. Spring MVC 国际化(i18n) 23. 23. Spring MVC Hibernate MqSQL 24. 24. Spring ORM 25. 25. Spring ORM JPA 26. 26. Spring Data JPA 27. 27. Spring 事务管理 28. 28. 常用的 Spring JdbcTemplate 29. 29. Spring Security 简介 30. 30. Spring Security 教程 31. 31. Spring Security UserDetailsService 32. 32. Spring MVC 登录注销简单案例 33. 33. Spring Security Roles 34. 34. Spring Boot Tutorial 35. 35. Spring Boot Components 36. 36. Spring Boot CLI Hello World 37. 37. Spring Boot Initilizr Web 38. 38. Spring Boot Initilizr IDE 39. 39. Spring Boot Initilizr CLI 40. 40. Spring Boot Initilizr Tools 41. 41. Spring Boot MongoDB 42. 42. Spring Boot Redis Cache 43. 43. Spring Boot 常见面试问题 44. 44. Spring Batch 45. 45. Spring Batch 批处理示例 46. 46. Spring AMQP 47. 47. Spring RabbitMQ 48. 48. Spring AMQP RabbitMQ 49. 49. Apache ActiveMQ 安装与启动 50. 50. Spring ActiveMQ 教程 51. 51. Spring ActiveMQ 示例 52. 52. Spring JDBC 53. 53. Spring DataSource JNDI 54. 54. Spring Hibernate 55. 55. Spring Primefaces JPA 56. 56. Spring Primefaces MongoDB 57. 57. Spring Primefaces Hibernate 58. 58. SpringRoo Primefaces Hibernate 59. 59. Spring JSF 60. 60. Spring JDF Hibernate 61. 61. Spring Data MongoDB 62. 62. Spring 常见面试问题

29. Spring Security 简介

在这篇文章中,我们将讨论Spring框架和安全性以及模块基础。我们将在我接下来的帖子中开发一些简单而先进的例子。

现在,开发安全应用程序是避免出现故障、窃取或黑客攻击我们的机密数据或未经授权的访问的一个非常关键的方面。我们可以使用Spring安全模块来开发安全应用程序,以限制对应用程序的访问。

Spring4安全

最初,Spring框架使用一个独立的第三方框架来支持Spring应用程序的安全性:Acegi安全性。但开发安全应用程序并不是一种简单的方法,而且也存在一些缺点。

springacegi安全性的缺陷

  1. 大量XML配置
  2. 学习曲线过多
  3. 不支持批注

为了避免所有这些问题,Spring团队(Pivotal团队)将“;Acegi Security”;framework集成到Spring framework中,作为“;Spring Security”;模块。

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

  1. Spring安全
  2. Spring安全SAML
  3. OAuthSpring安全
  4. Spring Security Kerberos
  5. 云安全Spring

在Spring框架中,“;Spring Security”;模块是其余Spring安全模块的基础模块。

我们将讨论&#Spring安全&8221;本帖中的模块。我们将在我接下来的帖子中讨论一些简单和高级的实时示例。

一旦我们熟悉了,我们将回到四个模块的其余部分&#Spring安全&8221;模块在我即将到来的帖子。

什么是Spring安全?

Spring Security是Spring框架的安全模块之一。它是一个JavaSE/JavaEE安全框架,为Web应用程序或企业应用程序提供身份验证、授权、SSO和其他安全功能。

春安官网:https://projects.spring.io/spring-security/

Spring Security文档网站:https://docs.spring.io/spring-security/site/docs/

最新的稳定,Spring安全模块版本是“;4.0.2.发布和#8221;

Spring4安全特性

Spring 3.x安全框架提供了以下特性:

  1. 认证和授权。
  2. 支持基本、摘要和基于表单的身份验证。
  3. 支持LDAP身份验证。
  4. 支持OpenID身份验证。
  5. 支持SSO(单点登录)实现。
  6. 支持跨站点请求伪造(CSRF)实现。
  7. &;支持HTTP Cookies。
  8. 支持ACL的实现
  9. 支持“;通道安全”;这意味着在HTTP和HTTPS之间自动切换。
  10. 支持I18N(国际化)。
  11. 支持JAAS(Java身份验证和授权服务)。
  12. 使用springwebflow框架支持流授权。
  13. 使用springweb服务支持WS-Security。
  14. 支持XML配置和注解。很少或最少的XML配置。

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

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

我们将开发一些简单的例子来演示这些特性。

Spring4安全级别

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

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

注意Spring Security通过使用AOP(面向切面编程)支持方法级安全性,即通过方面。Spring Security通过使用Servlet过滤器支持URL级别的安全性。

Spring4的安全优势

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

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

Spring4安全子模块

Spring4安全模块又分为11个子模块. 它有以下子模块:

  1. Spring安全核心模块
  2. Spring安全配置模块
  3. Spring Security Web模块
  4. Spring安全标签库模块
  5. Spring Security AspectJ模块
  6. Spring Security ACL模块
  7. Spring Security LDAP模块
  8. Spring Security OpenID模块
  9. Spring Security CAS模块
  10. Spring安全加密模块
  11. Spring安全远程模块

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

为了支持这11个Spring安全模块,Spring framework有以下jar:

  1. spring-security-core-4.0.2。释放.jar
  2. Spring安全配置。释放.jar
  3. spring-security-web-4.0.2。释放.jar
  4. spring-security-taglibs-4.0.2。释放.jar
  5. spring-security-aspects-4.0.2。释放.jar
  6. spring-security-acl-4.0.2。释放.jar
  7. spring-security-ldap-4.0.2。释放.jar
  8. spring-security-openid-4.0.2。释放.jar
  9. spring-security-cas-4.0.2。释放.jar
  10. spring-security-crypto-4.0.2。释放.jar
  11. spring-security-remoting-4.0.2。释放.jar

几乎所有的Spring Security jar都有类似的Maven或Gradle依赖项,如下所示:

Spring安全专家


<dependencies>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>[Spring Security Module Name Here]</artifactId>
        <version>4.0.2.RELEASE</version>
    </dependency>
</dependencies>

Spring安全等级


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"
}

这就是Spring4安全模块基础知识的全部内容。现在是时候开始开发一些简单的示例来探索Spring安全模块了。

我们将使用springstsuiteide、Maven或Gradle构建工具和java7/8来开发我们的应用程序。

如果你喜欢我的帖子或有任何问题/建议,请给我留言。