プロジェクトモジュールと依存関係
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
依存 | バージョン | 説明 |
---|---|---|
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
です。
依存 | バージョン | 説明 |
---|---|---|
spring-security-core | ||
spring-web | HTTP リモーティングサポートを使用するクライアントに必要です。 |
Web — spring-security-web.jar
このモジュールには、フィルターと関連する Web セキュリティインフラストラクチャコードが含まれています。サーブレット API に依存するものがすべて含まれています。Spring Security Web 認証サービスと URL ベースのアクセス制御が必要な場合に必要です。メインパッケージは org.springframework.security.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
です。どのクラスも、アプリケーションで直接使用するためのものではありません。
依存 | バージョン | 説明 |
---|---|---|
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
です。
依存 | バージョン | 説明 |
---|---|---|
spring-security-core | ||
spring-ldap-core | 1.3.0 | LDAP サポートは Spring LDAP に基づいています。 |
spring-tx | データ例外クラスが必要です。 | |
apache-ds | 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 認証フレームワークおよび 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
です。
依存 | バージョン | 説明 |
---|---|---|
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
です。
依存 | バージョン | 説明 |
---|---|---|
spring-security-core | ||
spring-security-web | ||
cas-client-core | 3.1.12 | JA-SIG CAS クライアント。これが Spring Security 統合の基礎です。 |
ehcache | 1.6.2 | Ehcache ベースのチケットキャッシュを使用している場合は必須です(オプション)。 |