#概述
本文,我們將介紹如何用Maven配置Spring Security,並介紹Spring Security依賴項的具體用例。大家可以在Maven Central上找到最新的Spring Security版本。
#spring-security-core
Spring Security的核心是——spring-security-core, 它包含認證和訪問權限控制功能。此外,它還支持獨立(非web)應用程序、方法級別注解等功能。
<properties>
<spring-security.version>5.0.6.RELEASE</spring-security.version>
<spring.version>5.0.6.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring-security.version}</version>
</dependency>
❝注意,Spring和Spring Security的版本發布時間表不同,所以版本號之間並不總是有1:1(5.0.6.RELEASE)的匹配。
❞
例如,現在spring-security-core最新版本是5.3.2.RELEASE。我們可以在maven倉庫找到spring的依賴包。如圖:
#spring-security-web
如果你的Web應用也使用到Spring Security功能,我們也需要spring-security-web依賴包。
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring-security.version}</version>
</dependency>
它包含了過濾器和相關的Web安全基礎設施,可以在Servlet環境中實現URL訪問控制。
#Spring Security和較舊的Spring Core版本依賴問題
它們之間的關系可以在 Maven依賴關系圖中看到。 Spring Security jars不依賴於最新的 Spring Core jars (而是依賴於早期的版本)。在發生版本沖突的情況下,可以通過修改 Spring Security或 Spring Core版本,讓它們互相比配。Spring Core版本可以通過以下修改:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring-version}</version>
</dependency>
#spring-security-config 和其他依賴包
要使用Spring Security XML命名空間和Java代碼注釋,我們還需要spring-security-config依賴關系包。
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring-security.version}</version>
</dependency>
最后,LDAP、ACL、CAS和OpenID的支持在Spring Security中都有自己的依賴關系:spring-security-ldap、spring-security-acl、spring-security-cas和spring-security-openid。
好,不難吧~