日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Security与Maven教程

發(fā)布時間:2023/12/3 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Security与Maven教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.簡介

在這篇文章中,我們將演示如何針對非常特定的用例將Maven依賴項用于Spring Security。 我們使用的所有庫的最新版本都可以在Maven Central上找到。

在項目中,了解Maven依賴項的工作方式和管理方式對于有效的構(gòu)建周期非常重要,并且對于我們在項目中使用的各種庫之間的版本之間應(yīng)有清晰的定義,這很重要。 這是由于我們經(jīng)常在多個項目中重復(fù)一組依賴項的原因,并且當(dāng)我們不了解為什么要使用特定的庫版本時,我們應(yīng)該犯錯。 讓我們了解一下Spring Security和Spring Framework依賴關(guān)系之間的關(guān)系。

2.使用Maven的Spring Security

在本節(jié)中,我們將介紹管理Maven依賴關(guān)系的特定用例。 這是由于Spring Security涉及許多功能,而不是您可能想要集成到應(yīng)用程序中的每個功能都不需要所有依賴項的原因。 這些功能包括(但不限于):

  • 通過Spring Security保護注冊過程
  • 密碼加密,以便即使有人可以訪問數(shù)據(jù)庫也可以保護密碼
  • 管理用戶角色和權(quán)限,以便每個用戶都有可以在應(yīng)用程序中執(zhí)行的特定操作
  • 從應(yīng)用程序中的Spring Security檢索用戶信息以及分配給用戶的角色和特權(quán)
  • 受保護的RESTful API,因此訪問受到限制

2.1 spring-security-web

Spring Security Web依賴項用于提供與應(yīng)用程序的Web安全相關(guān)的功能,例如:

  • 在Servlet容器環(huán)境中對URL的訪問受到限制
  • 管理與Web相關(guān)的Spring Secuirty過濾器

要在Spring Security中添加Web支持,以下是所需的依賴項:

Spring安全網(wǎng)

<properties><org.springframework.security.version>3.2.3.RELEASE</org.springframework.security.version><org.springframework.version>4.0.4.RELEASE</org.springframework.version> </properties><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${org.springframework.security.version}</version> </dependency>

請注意,我們還定義了用作Maven屬性的Spring框架和Spring Security的版本,并在我們針對這些模塊提到的所有依賴關(guān)系中重復(fù)使用了該版本。

需要注意的要點是,Spring Framework和Spring Security遵循的時間表不同,因此版本號并不完全匹配 。 注意這一點很重要,因為例如,由于Spring Security 3.1.x是在Spring 3.1之前發(fā)行的,因此Spring Security 3.1.x不依賴于Spring 3.1.x發(fā)行版。

最后,要了解添加此依賴項時添加到項目中的所有JAR,我們可以運行一個簡單的Maven命令,當(dāng)我們向其添加一些依賴項時,該命令使我們能夠查看項目的完整依賴關(guān)系樹。 這是我們可以使用的命令:

檢查依賴樹

mvn dependency:tree

當(dāng)我們運行此命令時,它將向我們顯示以下依賴關(guān)系樹:

添加了Web安全依賴性的依賴性樹

如上圖所示, spring-security-web JAR還帶來了其他一些依賴性,例如spring-aop , spring-beans , spring-context , spring-core , spring-expression和spring-web 。 當(dāng)我們運行上面的命令時,在向我們展示依賴樹之前,maven首先再次下載了JAR,以確認是否已更改。

最后,請注意,如果其中一個依賴項需要另一個依賴項才能運行,則該依賴項也已下載并在上面的依賴關(guān)系樹中顯示為該樹的子分支。 當(dāng)某種依賴關(guān)系將另一個依賴項帶入構(gòu)建系統(tǒng)的依賴項池時,間接依賴項的子分支表示方法將被清除。

2.2 spring-security-core

現(xiàn)在,讓我們看一下Spring Security實現(xiàn)所需的核心依賴項:

Spring安全核心

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${org.springframework.security.version}</version> </dependency>

有了Spring Security Core依賴關(guān)系,我們就可以使用以下功能:

  • 訪問控制
  • 方法級安全
  • 也支持非Web應(yīng)用程序

這是Spring Security Maven依賴項家族中最常用的依賴項之一。 現(xiàn)在讓我們看一下spring-security-core JAR的依賴關(guān)系樹:

Spring Security核心依賴樹

2.3 spring-security-config

如果您對與Spring Security相關(guān)的benas使用XML名稱空間定義,則在應(yīng)用程序中需要spring-security-config Maven依賴項。

彈簧安全配置

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${org.springframework.security.version}</version><scope>runtime</scope> </dependency>

由于此依賴項僅在XML名稱空間定義中使用,因此使用運行時范圍來定義它。 請注意,其他配置功能(例如ACL,CAS,OpenID和LDAP)具有其自己的依賴性,例如: spring-security-acl , spring-security-cas , spring-security-openid和spring-security-ldap 。 即使依賴項具有運行時范圍,但是仍然會下載其依賴項,讓我們在這里查看其依賴項樹:

Spring Security配置依賴樹

2.4較舊的Spring Security依賴關(guān)系存在的問題

Spring Security JAR引起的一個主要問題是,并不是所有的Spring Security JAR都依賴于最新版本的Spring Framework相關(guān)依賴關(guān)系,但實際上它們需要較舊版本的依賴關(guān)系。 這就是為什么我們需要顯式定義這些JAR,以便Maven在開始收集依賴項并針對它們進行編譯時不會報告版本沖突。 這是必需的依賴項:

顯式依賴

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${org.springframework.version}</version> </dependency>

這樣,當(dāng)我們在自己的pom.xml文件中顯式定義一些Spring依賴項時,我們將該依賴項置于0深度,因此,它將優(yōu)先使用提到的版本,而不是Spring框架依賴項樹中的隱式依賴項。 讓我們看一下此處的依賴樹以清除此問題:

添加特定JAR時的依賴樹

當(dāng)我們在此處查看依賴關(guān)系樹時,我們看到由于在pom.xml文件中明確提及而添加到項目中的JAR的確切版本。

在此處閱讀有關(guān)解決Maven中的依賴沖突的更多信息。

3. Spring Security中的快照和里程碑

Spring Security提供了Snapshot和Milestone版本,這些版本存在于Spring提供的自定義Maven存儲庫中。 閱讀本課程,以了解如何在您的應(yīng)用程序中使用這些發(fā)行版。

Release構(gòu)件和Snapshot構(gòu)件之間的主要區(qū)別在于Release構(gòu)件是特定的和預(yù)先計劃的發(fā)行版,它們是在預(yù)定的時間點制作的,被認為是穩(wěn)定,穩(wěn)定和永久的,以確保構(gòu)建依賴于隨著時間的推移,它們是可重復(fù)的。 Central Maven存儲庫存儲發(fā)行工件。

快照可以捕獲仍在進行中并在開發(fā)過程中使用的項目。 快照構(gòu)件包含兩個部分:版本號(例如“ 1.3.0”或“ 1.3”)和時間戳。 例如,用于spring-framework 1.3.0的快照工件可能具有名稱spring-framework-1.3.0-20180323.19283-3.jar。

4。結(jié)論

在本課程中,我們討論了帶有Spring Security的各種Maven依賴關(guān)系以及初學(xué)者在開始使用Spring Security功能時通常會遇到的一些主要問題。 本課是了解所需依賴項的很好的起點。

我們還解釋了在將Spring Security與Spring Framework結(jié)合使用時,指定某些特定JAR的版本有多么重要,以及我們?nèi)绾尾荒芤蕾嘢pring Framework為這些JAR選擇的依賴版本。 通過指定特定的依賴關(guān)系,我們要做的就是確保Maven選擇這些顯式的版本規(guī)范,而不是Spring Framework的依賴版本,以免發(fā)生版本沖突。

最后,我們學(xué)習(xí)了如何使用簡單的maven命令顯示項目的依賴關(guān)系樹,并觀察項目的哪些依賴關(guān)系還取決于其他哪些依賴關(guān)系。

在此處閱讀有關(guān)Spring Framework的更多課程。

5.下載源代碼

這是一個示例,顯示了如何在項目中使用基于Spring Security的不同依賴關(guān)系。

下載
您可以在此處下載此示例的完整源代碼: SpringSecurityMaven

翻譯自: https://www.javacodegeeks.com/2018/03/spring-security-with-maven-tutorial.html

總結(jié)

以上是生活随笔為你收集整理的Spring Security与Maven教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。