Spring Security Tutorial

Spring Security 教程

在本教程中,我们将学习 Spring Security 框架。我们将从基础开始,逐步了解各种框架的配置以与 Spring Security 协同工作。我们还将进行一些动手编码,使用 Spring Security 框架执行 CRUD 操作。

什么是 Spring Security?

Spring Security 是最流行的 Spring 项目之一,用于保护基于 Spring/Spring Boot 的应用程序。Spring Security 为我们在应用程序中实现身份验证和授权提供了许多内置功能。

Spring Security 最初于 2003 年后期作为 Spring 的 Acegi Security System 出现,是一个简单的基于 Spring 的安全实现。2006 年 5 月,在众多生产软件中使用、社区改进和错误修复后,发布了 1.0.0 版本。到 2007 年底,Acegi Security System 更名为 Spring Security,并成为 Spring 官方项目组合的一部分。

什么是身份验证?

身份验证确保用户或客户端就是其声称的身份。Spring Security 通过多种方式使我们能够执行身份验证。Spring Security 支持基本身份验证、LDAP 身份验证、JDBC 身份验证等。

什么是授权?

授权确保用户是否具有执行该操作的权限。如果我们的应用程序很复杂,并且有不同类型的用户,例如管理员、普通用户和其他权限较低的用户,我们需要在我们的应用程序中维护访问控制。例如,访客用户不应能够访问管理员内容。因此,为了控制对应用程序内各种资源的访问,我们需要检查用户是否有权访问该资源。Spring Security 支持角色、声明等来提供用户级别的授权。

Spring Security 支持的身份验证方法

Spring Security 支持大量身份验证模型。大多数这些身份验证模型是由第三方或互联网工程任务组 IETF 作为标准机构开发的。能够与广泛的第三方身份验证模型集成,使 Spring Security 在开发人员中非常受欢迎,可以将其集成到他们的项目中。Spring 也提供了自己的身份验证功能。以下列表显示了 Spring Security 支持的各种身份验证方法。

  • HTTP 基本身份验证标头

  • HTTP摘要身份验证标头

  • HTTP X.509 客户端证书交换

  • LDAP

  • 基于表单的身份验证

  • OpenID 身份验证

  • 基于预先建立的请求标头的身份验证

  • JA-SIG 中央认证服务,一个开源的单点登录系统

  • 远程方法调用 (RMI) 和 HttpInvoker 的透明身份验证上下文传播

  • 记住我

  • 匿名身份验证

  • 运行时身份验证

  • Java 身份验证和授权服务 (JAAS)

  • JEE 容器身份验证

  • Kerberos

  • Java 开源单点登录 (JOSSO)

  • OpenNMS 网络管理平台

  • AppFuse

  • AndroMDA

  • Mule ESB

  • 直接 Web 请求 (DWR)

  • Grails

  • Tapestry

  • JTrac

  • Jasypt

  • Roller

  • Elastic Path

  • Atlassian Crowd

我们还可以将自己的自定义身份验证机制与 Spring Security 集成。

受众

本教程将对研究生、研究生和研究人员有所帮助,他们要么对该主题感兴趣,要么将其作为课程的一部分。读者可以是初学者或高级学习者。

先决条件

虽然本教程没有强制性要求。但是,如果您具备以下任何或所有(超级酷)先验知识,将是一个额外的优势 -

  • 大约 30 分钟

  • Spring Security 基础知识

  • 对 Apache Solr 数据库的基本了解。

  • 一个基于 Java 的 IDE(Eclipse、STS 或 IntelliJ IDEA)

  • JDK 1.8 或更高版本

  • Gradle 4+ 或 Maven 3.2+

  • 已安装 Apache Solr

广告

© . All rights reserved.