javascript
Maven的Spring Security
1.概述
本文將說(shuō)明如何使用Maven設(shè)置Spring Security,并介紹使用Spring Security依賴項(xiàng)的特定用例。 最新的Spring Security版本可以在Maven Central上找到。
這是上一篇有關(guān)Maven的Spring的后續(xù)文章 ,因此對(duì)于非安全性Spring依賴項(xiàng),這是開始的地方。
2.使用Maven的Spring Security
2.1。 Spring安全核心
核心Spring Security支持(即spring-security-core )包含身份驗(yàn)證和訪問(wèn)控制功能,并支持獨(dú)立(非Web)應(yīng)用程序,方法級(jí)安全性和JDBC:
<properties><org.springframework.security.version>3.1.4.RELEASE</org.springframework.security.version><org.springframework.version>3.2.4.RELEASE</org.springframework.version> </properties> <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${org.springframework.security.version}</version> </dependency>請(qǐng)注意,我們正在使用3.1.4.RELEASE版本的Spring Security – Spring和Spring Security的發(fā)布時(shí)間表不同 ,因此版本號(hào)之間沒(méi)有1:1的匹配。
理解上也很重要的事實(shí)是,從直覺(jué)上講, Spring Security 3.1.x不依賴于Spring 3.1.x發(fā)行版 –這是因?yàn)镾pring Security 3.1.x是在Spring 3.1之前發(fā)行的。 計(jì)劃是在將來(lái)的發(fā)行版中更緊密地調(diào)整這些依賴關(guān)系–有關(guān)更多詳細(xì)信息,請(qǐng)參見(jiàn)JIRA。–目前,這具有實(shí)際意義,我們將在下一步進(jìn)行探討。
2.2。 Spring安全網(wǎng)
要添加對(duì)Spring Security的Web支持 ,需要spring-security-web依賴項(xiàng):
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${org.springframework.security.version}</version> </dependency>它包含篩選器和相關(guān)的Web安全基礎(chǔ)結(jié)構(gòu),可在Servlet環(huán)境中啟用URL訪問(wèn)控制。
2.3。 Spring Security和較舊的Spring Core依賴關(guān)系問(wèn)題
這個(gè)新的依賴關(guān)系也給Maven依賴關(guān)系圖帶來(lái)了一個(gè)問(wèn)題 -如上所述,Spring Security可能依賴于3.0.x Spring依賴關(guān)系-這可能導(dǎo)致這些較舊的依賴關(guān)系在類路徑之上,而不是較新的3.2.x Spring。文物。
要了解為什么會(huì)發(fā)生這種情況,我們需要查看Maven如何解決沖突 –在版本沖突的情況下,Maven會(huì)選擇最接近樹根的jar。 在我們的例子中, spring-jdbc既由spring-orm ( 3.2.2.RELEASE版本)定義,也由spring-security-web (以3.0.7.RELEASE版本)定義–因此,在兩種情況下, spring- jdbc的定義距項(xiàng)目根pom的深度為1。 因此,在我們自己的pom中定義spring-orm和spring-security-web的順序?qū)嶋H上很重要-第一個(gè)優(yōu)先級(jí)較高,因此我們可以在classpath上使用這兩個(gè)版本 。
要解決此問(wèn)題,我們將必須在自己的pom中顯式定義一些Spring依賴項(xiàng) ,而不要依賴隱式Maven依賴項(xiàng)解析機(jī)制-這樣做會(huì)將特定依賴項(xiàng)置于pom的深度0(如在pom中定義的那樣)。 pom本身),因此將優(yōu)先處理。 以下所有內(nèi)容都屬于同一類別,并且都需要直接定義,或者對(duì)于多模塊項(xiàng)目,都必須在父項(xiàng)的dependencyManagement元素中進(jìn)行明確定義:
<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>2.4。 spring-security-config等
要使用豐富的Spring Security XML名稱空間,將需要spring-security-config依賴項(xiàng):
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${org.springframework.security.version}</version><scope>runtime</scope> </dependency>沒(méi)有應(yīng)用程序代碼應(yīng)針對(duì)此依賴關(guān)系進(jìn)行編譯,因此應(yīng)將其范圍限定為runtime 。
最后,LDAP,ACL,CAS和OpenID支持在Spring Security中具有它們自己的依賴性: spring-security-ldap , spring-security-acl , spring-security-cas和spring-security-openid 。
3.使用快照和里程碑
Spring提供的自定義Maven存儲(chǔ)庫(kù)中提供了Spring Security 里程碑和快照 -有關(guān)如何配置它們的更多詳細(xì)信息,請(qǐng)參閱如何使用快照和里程碑 。
4。結(jié)論
本文討論了將Spring Security與Maven結(jié)合使用的實(shí)際細(xì)節(jié)。 這里介紹的Maven依賴關(guān)系當(dāng)然是一些主要的依賴關(guān)系,還有其他一些值得一提并且還沒(méi)有削減的依賴關(guān)系。 盡管如此,這應(yīng)該是在啟用Maven的項(xiàng)目中使用Spring的一個(gè)很好的起點(diǎn)。
翻譯自: https://www.javacodegeeks.com/2013/05/spring-security-with-maven.html
總結(jié)
以上是生活随笔為你收集整理的Maven的Spring Security的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vivos12pro值得入手吗(vivo
- 下一篇: 电脑主板电池放电的方法电脑主板如何放电