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

廣告