最新の安定バージョンについては、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

Spring Web サポートクラスは広く使用されています。

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 名前空間オプションを使用している場合は必須です(オプション)。

spring-security-openid

OpenID 認証を使用している場合は必須です(オプション)。

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 ]

1.5.5

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

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 認可フレームワークおよび OpenID Connect Core 1.0 に対する Spring Security のクライアントサポートが含まれています。OAuth 2.0 ログインまたは OAuth クライアントサポートを使用するアプリケーションに必要です。最上位パッケージは org.springframework.security.oauth2.client です。

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 には、OAuth 2.0 リソースサーバーに対する Spring Security のサポートが含まれています。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 ベースのチケットキャッシュを使用している場合は必須です(オプション)。

OpenID — spring-security-openid.jar

OpenID 1.0 および 2.0 プロトコルは非推奨になり、ユーザーは spring-security-oauth2 でサポートされている OpenIDConnect に移行することをお勧めします。

このモジュールには、OpenID Web 認証サポートが含まれています。外部 OpenID サーバーに対してユーザーを認証するために使用されます。最上位パッケージは org.springframework.security.openid です。OpenID4Java が必要です。

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

spring-security-core

spring-security-web

openid4java-nodeps

0.9.6

Spring Security の OpenID 統合は OpenID4Java を使用します。

httpclient

4.1.1

openid4java-nodeps は HttpClient 4 に依存しています。

guice

2.0

openid4java-nodeps は Guice 2 に依存しています。

テスト — spring-security-test.jar

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

Taglibs — spring-security-taglibs.jar

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

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

spring-security-core

spring-security-web

spring-security-acl

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

spring-expression

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


1. モジュール apacheds-coreapacheds-core-entryapacheds-protocol-sharedapacheds-protocol-ldapapacheds-server-jndi が必要です。