最新の安定バージョンについては、Spring Security 6.3.1 を使用してください!

プロジェクトモジュールと依存関係

Maven を使用しない場合でも、pom.xml ファイルを参照して、サードパーティの依存関係とバージョンを確認することをお勧めします。もう 1 つの良いアイデアは、サンプルアプリケーションに含まれているライブラリを調べることです。

このセクションでは、Spring Security のモジュールのリファレンスと、実行中のアプリケーションで機能するために必要な追加の依存関係について説明します。Spring Security 自体を構築またはテストするときにのみ使用される依存関係は含まれていません。また、外部の依存関係に必要な推移的な依存関係も含まれていません。

必要な Spring のバージョンは、プロジェクトの Web サイトにリストされているため、例では Spring の依存関係について特定のバージョンが省略されています。例で「オプション」としてリストされている依存関係の一部は、Spring アプリケーションの他の非セキュリティ機能にも必要な場合があることに注意してください。また、「オプション」としてリストされている依存関係は、プロジェクトの Maven POM ファイルで実際にそのようにマークされていない場合があります。ほとんどのアプリケーションで使用されます。これらは、指定された機能を使用しない限り必要ないという意味でのみ「オプション」です。

モジュールが別の Spring Security モジュールに依存している場合、依存するモジュールのオプションではない依存関係も必須であると想定され、個別にリストされていません。

コア — spring-security-core.jar

このモジュールには、コア認証およびアクセス制御クラスとインターフェース、リモート処理サポート、基本的なプロビジョニング API が含まれています。Spring Security を使用するアプリケーションにはこれが必要です。スタンドアロンアプリケーション、リモートクライアント、メソッド (サービス層) セキュリティ、および JDBC ユーザープロビジョニングをサポートします。これには、次のトップレベルのパッケージが含まれています。

  • org.springframework.security.core

  • org.springframework.security.access

  • org.springframework.security.authentication

  • org.springframework.security.provisioning

表 1: コアの依存関係
依存 バージョン 説明

ehcache

1.6.2

Ehcache ベースのユーザーキャッシュ実装を使用する場合は必須です(オプション)。

spring-aop

メソッドセキュリティは Spring AOP に基づいています

spring-beans

Spring 構成に必要

spring-expression

式ベースのメソッドセキュリティに必要 (オプション)

spring-jdbc

データベースを使用してユーザーデータを保存する場合は必須です(オプション)。

spring-tx

データベースを使用してユーザーデータを保存する場合は必須です(オプション)。

aspectjrt

1.6.10

AspectJ サポートを使用する場合は必須です(オプション)。

jsr250-api

1.0

JSR-250 メソッドセキュリティアノテーションを使用している場合は必須です(オプション)。

リモーティング — spring-security-remoting.jar

このモジュールは、Spring Remoting との統合を提供します。Spring Remoting を使用するリモートクライアントを作成していない限り、これは必要ありません。メインパッケージは org.springframework.security.remoting です。

表 2: リモーティングの依存関係
依存 バージョン 説明

spring-security-core

spring-web

HTTP リモーティングサポートを使用するクライアントに必要です。

Web — spring-security-web.jar

このモジュールには、フィルターと関連する Web セキュリティインフラストラクチャコードが含まれています。サーブレット API に依存するものがすべて含まれています。Spring Security Web 認証サービスと URL ベースのアクセス制御が必要な場合に必要です。メインパッケージは org.springframework.security.web です。

表 3: Web の依存関係
依存 バージョン 説明

spring-security-core

spring-web

HTTP リモーティングサポートを使用するクライアントに必要です。

spring-jdbc

JDBC ベースの永続的な remember-me トークンリポジトリに必要です(オプション)。

spring-tx

remember-me 永久トークンリポジトリの実装に必要です(オプション)。

構成 — spring-security-config.jar

このモジュールには、セキュリティ名前空間解析コードと Java 構成コードが含まれています。Spring Security XML 名前空間を構成に使用する場合、または Spring Security の Java 構成サポートを使用する場合に必要です。メインパッケージは org.springframework.security.config です。どのクラスも、アプリケーションで直接使用するためのものではありません。

表 4: 構成の依存関係
依存 バージョン 説明

spring-security-core

spring-security-web

Web 関連のネームスペース構成を使用している場合は必須です(オプション)。

spring-security-ldap

LDAP 名前空間オプションを使用している場合は必須です(オプション)。

aspectjweaver

1.6.10

protect-pointcut 名前空間構文を使用する場合は必須です(オプション)。

LDAP — spring-security-ldap.jar

このモジュールは、LDAP 認証およびプロビジョニングコードを提供します。LDAP 認証を使用するか、LDAP ユーザーエントリを管理する必要がある場合に必要です。最上位パッケージは org.springframework.security.ldap です。

表 5: LDAP の依存関係
依存 バージョン 説明

spring-security-core

spring-ldap-core

1.3.0

LDAP サポートは Spring LDAP に基づいています。

spring-tx

データ例外クラスが必要です。

apache-ds

1.5.5

組み込み LDAP サーバーを使用している場合は必須(オプション)。apache-ds を使用する場合は、apacheds-coreapacheds-core-entryapacheds-protocol-sharedapacheds-protocol-ldapapacheds-server-jndi モジュールが必要です。

shared-ldap

0.9.15

組み込み LDAP サーバーを使用している場合は必須です(オプション)。

ldapsdk

4.1

Mozilla LdapSDK。たとえば、OpenLDAP でパスワードポリシー機能を使用している場合、LDAP パスワードポリシーコントロールのデコードに使用されます。

OAuth 2.0 コア — spring-security-oauth2-core.jar

spring-security-oauth2-core.jar には、OAuth 2.0 認可フレームワークおよび OpenID Connect Core 1.0 のサポートを提供するコアクラスとインターフェースが含まれています。クライアント、リソースサーバー、認証サーバーなど、OAuth 2.0 または OpenID Connect Core 1.0 を使用するアプリケーションに必要です。最上位パッケージは org.springframework.security.oauth2.core です。

OAuth 2.0 クライアント — spring-security-oauth2-client.jar

spring-security-oauth2-client.jar には、OAuth 2.0 認証フレームワークおよび OpenIDConnect Core 1.0 に対する Spring Security のクライアントサポートが含まれています。これは、クライアント、リソースサーバー、認証サーバーなど、OAuth 2.0 または OpenIDConnect Core1.0 を使用するアプリケーションで必要です。トップレベルのパッケージは org.springframework.security.oauth2.core です。

OAuth 2.0 JOSE — spring-security-oauth2-jose.jar

spring-security-oauth2-jose.jar には、Spring Security による JOSE(Javascript Object Signing and Encryption)フレームワークのサポートが含まれています。JOSE フレームワークは、当事者間でクレームを安全に転送する方法を提供することを目的としています。仕様のコレクションから構築されています。

  • JSON Web トークン (JWT)

  • JSON Web 署名 (JWS)

  • JSON Web 暗号化 (JWE)

  • JSON Web キー (JWK)

次のトップレベルパッケージが含まれています。

  • org.springframework.security.oauth2.jwt

  • org.springframework.security.oauth2.jose

OAuth 2.0 リソースサーバー — spring-security-oauth2-resource-server.jar

spring-security-oauth2-resource-server.jar には、Spring Security による OAuth 2.0 リソースサーバーのサポートが含まれています。これは、OAuth 2.0 ベアラートークンを使用して API を保護するために使用されます。トップレベルのパッケージは org.springframework.security.oauth2.server.resource です。

ACL — spring-security-acl.jar

このモジュールには、特殊なドメインオブジェクト ACL 実装が含まれています。アプリケーション内の特定のドメインオブジェクトインスタンスにセキュリティを適用するために使用されます。最上位パッケージは org.springframework.security.acls です。

表 6: ACL の依存関係
依存 バージョン 説明

spring-security-core

ehcache

1.6.2

Ehcache ベースの ACL キャッシュ実装を使用する場合は必須(独自の実装を使用する場合はオプション)。

spring-jdbc

デフォルトの JDBC ベースの AclService を使用している場合は必須です(独自に実装する場合はオプション)。

spring-tx

デフォルトの JDBC ベースの AclService を使用している場合は必須です(独自に実装する場合はオプション)。

CAS — spring-security-cas.jar

このモジュールには、Spring Security の CAS クライアント統合が含まれています。CAS シングルサインオンサーバーで Spring Security Web 認証を使用する場合は、これを使用する必要があります。最上位パッケージは org.springframework.security.cas です。

表 7: CAS の依存関係
依存 バージョン 説明

spring-security-core

spring-security-web

cas-client-core

3.1.12

JA-SIG CAS クライアント。これが Spring Security 統合の基礎です。

ehcache

1.6.2

Ehcache ベースのチケットキャッシュを使用している場合は必須です(オプション)。

テスト — spring-security-test.jar

このモジュールには、Spring Security によるテストのサポートが含まれています。

Taglibs — spring-security-taglibs.jar

Spring Security の JSP タグの実装を提供します。

表 8: Taglib の依存関係
依存 バージョン 説明

spring-security-core

spring-security-web

spring-security-acl

ACL で accesscontrollist タグまたは hasPermission() 式を使用している場合は必須です(オプション)。

spring-expression

タグアクセス制約で SPEL 式を使用している場合は必須です。