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