パッケージ jakarta.resource.spi.work

クラス SecurityContext

java.lang.ObjectSE
jakarta.resource.spi.work.SecurityContext
実装されたすべてのインターフェース:
WorkContextSerializableSE

public abstract class SecurityContext extends ObjectSE implements WorkContext
Work インスタンスがセキュリティ関連のコンテキスト情報を EIS からアプリケーションサーバーに伝播できるようにする標準の WorkContext

これにより、EIS/ リソースアダプターはセキュリティコンテキスト情報をフローインして Work インスタンスを実行し、MessageEndpoint インターフェースでメソッドを呼び出して、確立された ID のコンテキストでその Work インスタンス内にメッセージインフローを実行できます。

リソースアダプターは、WorkContextProvider インターフェースを実装する Work インスタンスを送信し、その Work インスタンスの WorkContexts のリストに SecurityContext のサブクラスのインスタンスが含まれていることを確認することにより、指定されたセキュリティ実行コンテキストで Work インスタンスを実行する必要があることを WorkManager に示します。

ただし、リソースアダプターがアプリケーションサーバーによって使用される ID をフローインする場合、伝播された ID はアプリケーションサーバーのセキュリティドメインに属している場合と属していない場合があることに注意してください。

リソースアダプターがセキュリティ ID を EIS からアプリケーションサーバーに伝播するシナリオは 2 つあります。

  • ケース 1: リソースアダプターは、アプリケーションサーバーのセキュリティドメインの ID に流れ込みます: この場合、アプリケーションサーバーは、Work インスタンスが実行されるセキュリティコンテキストとして、リソースアダプターからフライインされる開始プリンシパルを設定するだけで済みます。
  • ケース 2: リソースアダプターフローイン EIS のセキュリティドメインに属する ID: リソースアダプターは EIS への接続を確立し、EISID のコンテキストで作業を実行する必要があります。この場合、開始プリンシパルまたは呼び出し元プリンシパルはアプリケーションサーバーのセキュリティドメインに存在しないため、あるドメインから別のドメインへの変換を実行する必要があります。

導入:
1.6
関連事項:
  • コンストラクターの詳細

    • SecurityContext

      public SecurityContext()
  • メソッドの詳細

    • getDescription

      public StringSE getDescription()
      WorkContext が果たすロールの簡単な説明と、その他の関連するデバッグ情報を取得します。これは、デバッグの目的で WorkManager およびリソースアダプターで使用できます。

      次で指定:
      インターフェース WorkContextgetDescription 
      戻り値:
      WorkContext の関連説明
    • getName

      public StringSE getName()
      WorkContext の関連名を取得します。これは、デバッグの目的で WorkManager およびリソースアダプターで使用できます。

      次で指定:
      インターフェース WorkContextgetName 
      戻り値:
      WorkContext の関連付けられた名前
    • setupSecurityContext

      public abstract void setupSecurityContext(CallbackHandlerSE handler, SubjectSE executionSubject, SubjectSE serviceSubject)
      コンテナーはこのメソッドを呼び出して、Work インスタンスのセキュリティコンテキストを設定します。

      ハンドラー引数は null であってはならず、このメソッドに渡される引数ハンドラーと CallbackHandler は、Jakarta Authentication 仕様で定義されている次の Callback をサポートする必要があります。

      • CallerPrincipalCallback
      • GroupPrincipalCallback
      • PasswordValidationCallback

      以下の Callback は、コンテナーによってサポートされる場合があります。

      • CertStoreCallback
      • PrivateKeyCallback
      • SecretKeyCallback
      • TrustStoreCallback
      リソースアダプターは、CallerPrincipalCallback " を使用して、呼び出し元プリンシパルのコンテナー表現を設定する場合があります。CallbackHandler は、コンテナーによって処理されている呼び出しに関連付けられた呼び出し元プリンシパルとして引数 Principal を確立する必要があります。引数 Principal が null の場合、ハンドラーは確立します。認証されていない呼び出し元プリンシパルのコンテナーの表現。」

      リソースアダプターは、GroupPrincipalCallback " を使用して、サブジェクト内の対応するグループプリンシパルのコンテナー表現を確立する場合があります。グループ引数に null 値が渡されると、ハンドラーはサブジェクト内のグループプリンシパルなしのコンテナー表現を確立します。このコールバックのハンドラーの処理は加算的であり、サブジェクト内に存在するプリンシパルと、引数配列内にある名前で作成されたプリンシパルの和集合(重複なし)を生成します。CallbackHandler は、作成されたプリンシパルの型を定義します。」

      リソースアダプターは、PasswordValidationCallback を使用して、「含まれているランタイムのパスワード検証機能を使用する」場合があります。

      executionSubject 引数は null 以外で、読み取り専用であってはなりません。このメソッドは、アプリケーションサーバーに送信されるプリンシパルと資格情報をこの executionSubject に入力することが想定されています。

      serviceSubject 引数は null にすることができますが、null でない場合は読み取り専用にすることはできません。これはアプリケーションサーバーを表し、Work 実装によって、EIS への接続を確立するために必要なプリンシパルと資格情報を取得するために使用される場合があります (相互認証のようなシナリオの場合)。サブジェクトが null でない場合、Work 実装は、渡されたコールバックハンドラーを使用して、必要に応じてサーバーの資格情報を収集する場合があります。

      このメソッドが呼び出されると、メソッドの実装

      • Work インスタンスの実行コンテキストとして機能するためにアプリケーションサーバーにフライインする必要があるセキュリティコンテキストを識別します。
      • 実行される Work インスタンスのセキュリティコンテキストとして機能する EIS プリンシパルと資格情報を executionSubject に入力します。
      • 必要なコールバックのインスタンス(通常は上記のサブセット)を配列に追加し、コンテナーの CallbackHandler 実装で handle() メソッドを呼び出して、コールバックインスタンスの配列を渡します。
      • CallbackHandler.handle() メソッドから正常に戻ると、setSecurityContext は、executionSubject に Work インスタンスの実行コンテキストを表す有効なプリンシパルと資格情報が設定されていることを確認した後に戻ります。

      Jakarta Authentication 仕様および関連する JavaDoc を参照してください

      パラメーター:
      handler - 上記の Callback をサポートする WorkManager によって提供される CallbackHandler 
      executionSubject - Work インスタンスのコンテキストとして確立する必要があるセキュリティ ID を表すサブジェクト。これは、Work インスタンスのセキュリティコンテキストとして使用する必要があるプリンシパルと資格情報を格納するためにメソッド実装によって使用されます。
      serviceSubject - アプリケーションサーバーを表すサブジェクトこれは、EIS への接続を検証するために使用されるプリンシパルまたは資格情報のソースとして、メソッド実装によって使用される場合があります。サブジェクトが null でない場合、メソッドの実装により、追加のプリンシパルまたは資格情報(サービスリクエストの受信者に関連する)がサブジェクトに追加される場合があります。*