このセクションでは、Spring Security バイナリの取得について知っておく必要のあるすべてについて説明します。ソースコードの入手方法については、セクション 2.3: “ ソースコード ” を参照してください。
Spring Security バージョンは、次のような MAJOR.MINOR.PATCH としてフォーマットされます。
ほとんどのオープンソースプロジェクトとして、Spring Security は依存関係を Maven アーティファクトとしてデプロイします。このセクションのトピックでは、Maven を使用するときに Spring Security を使用する方法について詳しく説明します。
Spring Boot は、Spring セキュリティ関連の依存関係を一緒に集約する spring-boot-starter-security
スターターを提供します。スターターを使用する最も簡単で推奨する方法は、IDE 統合(Eclipse、IntelliJ、NetBeans: GitHub (英語) )または https://start.spring.io (英語) を使用して Spring Initializr (英語) を使用することです。
または、次の例に示すように、スターターを手動で追加できます。
例 4.1: pom.xml
<dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> </dependencies>
Spring Boot は依存バージョンを管理するために Maven BOM を提供するため、バージョンを指定する必要はありません。Spring Security バージョンをオーバーライドする場合は、次の例に示すように、Maven プロパティを指定することでオーバーライドできます。
例 4.2: pom.xml
<properties> <!-- ... --> <spring-security.version>5.2.8.BUILD-SNAPSHOT</spring-security.version> </dependencies>
Spring Security はメジャーリリースでのみ重大な変更を行うため、Spring Boot で Spring Security の新しいバージョンを使用しても安全です。ただし、場合によっては、Spring Framework のバージョンも更新する必要があります。これを行うには、次の例に示すように、Maven プロパティを追加します。
例 4.3: pom.xml
<properties> <!-- ... --> <spring.version>5.2.9.RELEASE</spring.version> </dependencies>
追加の機能(LDAP、OpenID など)を使用する場合は、適切な第 6 章: プロジェクトモジュールも含める必要があります。
Spring Boot なしで Spring Security を使用する場合、Spring Security の BOM を使用して、プロジェクト全体で Spring Security の一貫したバージョンが使用されるようにすることをお勧めします。次の例は、その方法を示しています。
例 4.4: pom.xml
<dependencyManagement> <dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-bom</artifactId> <version>5.2.8.BUILD-SNAPSHOT</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
依存関係の最小限の Spring Security Maven セットは通常、次のようになります。
例 4.5: pom.xml
<dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> </dependency> </dependencies>
追加の機能(LDAP、OpenID など)を使用する場合は、適切な第 6 章: プロジェクトモジュールも含める必要があります。
Spring Security は Spring Framework 5.2.9.RELEASE に対してビルドされますが、通常は新しいバージョンの Spring Framework 5.x で動作します。多くのユーザーは、Spring Security の推移的な依存関係が Spring Framework 5.2.9.RELEASE を解決するという事実を恐れて、奇妙なクラスパスの問題を引き起こす可能性があります。これを解決する最も簡単な方法は、次の例に示すように、pom.xml
の <dependencyManagement>
セクション内で spring-framework-bom
を使用することです。
例 4.6: pom.xml
<dependencyManagement> <dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>5.2.9.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
上記の例は、Spring Security のすべての推移的な依存関係が Spring 5.2.9.RELEASE モジュールを使用することを保証します。
![]() | メモ |
---|---|
このアプローチは、Maven の「部品表」(BOM)コンセプトを使用しており、Maven 2.0.9+ でのみ使用できます。依存関係の解決方法の詳細については、Maven の依存性メカニズムドキュメントの導入: Apache (英語) を参照してください。 |
すべての GA リリース(つまり、.RELEASE で終わるバージョン)は Maven セントラルにデプロイされるため、pom で追加の Maven リポジトリを宣言する必要はありません。
SNAPSHOT バージョンを使用する場合、次の例に示すように、Spring スナップショットリポジトリが定義されていることを確認する必要があります。
例 4.7: pom.xml
<repositories> <!-- ... possibly other repository elements ... --> <repository> <id>spring-snapshot</id> <name>Spring Snapshot Repository</name> <url>https://repo.spring.io/snapshot</url> </repository> </repositories>
マイルストーンまたはリリース候補バージョンを使用する場合、次の例に示すように、Spring マイルストーンリポジトリが定義されていることを確認する必要があります。
例 4.8: pom.xml
<repositories> <!-- ... possibly other repository elements ... --> <repository> <id>spring-milestone</id> <name>Spring Milestone Repository</name> <url>https://repo.spring.io/milestone</url> </repository> </repositories>
ほとんどのオープンソースプロジェクトとして、Spring Security はその依存関係を Maven アーティファクトとしてデプロイします。これにより、ファーストクラスの Gradle サポートが可能になります。以下のトピックでは、Gradle を使用するときに Spring Security を使用する方法について詳しく説明します。
Spring Boot は、Spring Security 関連の依存関係を一緒に集約する spring-boot-starter-security
スターターを提供します。スターターを使用する最も簡単で推奨する方法は、IDE 統合(Eclipse、IntelliJ、NetBeans: GitHub (英語) )を使用するか、https://start.spring.io (英語) を使用して Spring Initializr (英語) を使用することです。
または、次の例に示すように、スターターを手動で追加できます。
Spring Boot は依存バージョンを管理するために Maven BOM を提供するため、バージョンを指定する必要はありません。Spring Security バージョンをオーバーライドする場合は、次の例に示すように、Gradle プロパティを提供することでオーバーライドできます。
Spring Security はメジャーリリースでのみ重大な変更を行うため、Spring Boot で Spring Security の新しいバージョンを使用しても安全です。ただし、場合によっては、Spring Framework のバージョンも更新する必要があります。これを行うには、次の例に示すように、Gradle プロパティを追加します。
追加の機能(LDAP、OpenID など)を使用する場合は、適切な第 6 章: プロジェクトモジュールも含める必要があります。
Spring Boot なしで Spring Security を使用する場合、Spring Security の BOM を使用して、プロジェクト全体で Spring Security の一貫したバージョンが使用されるようにすることをお勧めします。次の例に示すように、依存関係管理プラグイン: GitHub (英語) を使用してこれを行うことができます。
例 4.12: build.gradle
plugins { id "io.spring.dependency-management" version "1.0.6.RELEASE" } dependencyManagement { imports { mavenBom 'org.springframework.security:spring-security-bom:5.2.8.BUILD-SNAPSHOT' } }
依存関係の最小限の Spring Security Maven セットは通常、次のようになります。
例 4.13: build.gradle
dependencies { compile "org.springframework.security:spring-security-web" compile "org.springframework.security:spring-security-config" }
追加の機能(LDAP、OpenID など)を使用する場合は、適切な第 6 章: プロジェクトモジュールも含める必要があります。
Spring Security は Spring Framework 5.2.9.RELEASE に対してビルドされますが、通常は新しいバージョンの Spring Framework 5.x で動作します。{JB} 多くのユーザーは、Spring Security の推移的な依存関係が Spring Framework 5.2.9.RELEASE を解決するという事実を恐れて、奇妙なクラスパスの問題を引き起こす可能性があります。これを解決する最も簡単な方法は、pom.xml
の <dependencyManagement>
セクション内で spring-framework-bom
を使用することです。これは、次の例に示すように、依存関係管理プラグイン: GitHub (英語) を使用して行うことができます。
例 4.14: build.gradle
plugins { id "io.spring.dependency-management" version "1.0.6.RELEASE" } dependencyManagement { imports { mavenBom 'org.springframework:spring-framework-bom:5.2.9.RELEASE' } }
上記の例は、Spring Security のすべての推移的な依存関係が Spring 5.2.9.RELEASE モジュールを使用することを保証します。
GA リリース(つまり、.RELEASE で終わるバージョン)はすべて Maven セントラルにデプロイされるため、GA リリースには mavenCentral() リポジトリを使用するだけで十分です。次の例は、その方法を示しています。
SNAPSHOT バージョンを使用する場合、次の例に示すように、Spring スナップショットリポジトリが定義されていることを確認する必要があります。
マイルストーンまたはリリース候補バージョンを使用する場合、次の例に示すように、Spring マイルストーンリポジトリが定義されていることを確認する必要があります。