インターフェース SecurityContext


public interface SecurityContext
SecurityContext は、プログラムによるセキュリティのためのアクセスポイントを提供します。アプリケーションコードが Jakarta Security を照会および操作するために使用することを目的とした注入可能な型。

特に明記されていない限り、この型はすべての Jakarta EE コンテナー、特に Jakarta Servlet および Jakarta Enterprise Beans コンテナーで使用可能でなければなりません。

  • 方法の概要

    修飾子と型
    メソッド
    説明
    呼び出し元との Web/HTTP ベースの認証ダイアログを開始または続行する必要があることをコンテナーに通知します(プログラムでトリガーします)。
    認証された呼び出し元が属するすべての静的 (宣言された) アプリケーションロールのリスト、または呼び出し元が認証されていないか宣言されたロールに属していない場合は空のリスト。
    認証された呼び出し元の名前を表すプラットフォーム固有の java.security.Principal を取得します。現在の呼び出し元が認証されていない場合は null を取得します。
    <T extends PrincipalSE>
    SetSE<T>
    認証された呼び出し元のサブジェクトから指定された型のすべてのプリンシパルを取得します。現在の呼び出し元が認証されていない場合、または指定された型がサブジェクトに見つからない場合は空のセットを取得します。
    boolean
    サーブレット仕様のセクション 13.8 で指定されているように、指定されたメソッドを使用して、呼び出し元が提供された「Web リソース」にアクセスできるかどうかを確認します。
    boolean
    認証された呼び出し元が指定された論理アプリケーション「ロール」に含まれているかどうかを確認します
  • メソッドの詳細

    • getCallerPrincipal

      PrincipalSE getCallerPrincipal()
      認証された呼び出し元の名前を表すプラットフォーム固有の java.security.Principal を取得します。現在の呼び出し元が認証されていない場合は null を取得します。
      戻り値:
      現在認証されているユーザーの名前を表すプリンシパル。認証されていない場合は null。
    • getPrincipalsByType

      <T extends PrincipalSE> SetSE<T> getPrincipalsByType(ClassSE<T> pType)
      認証された呼び出し元のサブジェクトから指定された型のすべてのプリンシパルを取得します。現在の呼び出し元が認証されていない場合、または指定された型がサブジェクトに見つからない場合は空のセットを取得します。

      これは、呼び出し側のプラットフォームの表現が異なるプリンシパル型を使用している場合に、アプリケーション固有のプリンシパルを取得するために使用できます。

      返されたセットは、サブジェクトの内部プリンシパルセットによってサポートされていません。メソッドの呼び出しごとに新しいセットが作成されて返されます。返されたセットを変更しても、内部のプリンシパルセットには影響しません。

      型パラメーター:
      T - pType 引数で表される実際の型
      パラメーター:
      pType - 返すプリンシパルの型を表すクラスオブジェクト。
      戻り値:
      指定された型のプリンシパルのセット、または空のセット。
    • isCallerInRole

      boolean isCallerInRole(StringSE role)
      認証された呼び出し元が指定された論理アプリケーション「ロール」に含まれているかどうかを確認します。呼び出し元が認証されていない場合、これは常に false を返します。

      このメソッド、特定の名前付き Jakarta Servlets または名前付き Jakarta Enterprise Beans にマップされているロールのテストには使用できません。サーブレットの場合、この例として、web.xml の servlet 要素にネストされた security-role-ref 要素にネストされた role-name があります。

      そのような Jakarta Servlet または Jakarta Enterprise Bean のいずれかのコードで、そのようなマップされた (別名、参照され、リンクされた) ロールを考慮したい場合は、その特定のコンテナーの機能を代わりに使用する必要があります。たとえば、サーブレットの場合は HttpServletRequest.isUserInRole(String) になり、Jakarta Enterprise Beans の場合は jakarta.ejb.SessionContext#isCallerInRole(String) になります。

      パラメーター:
      role - 論理アプリケーションロールの名前を指定する String 
      戻り値:
      認証された呼び出し元が指定されたロールにある場合は true、呼び出し元が認証されていないか指定されたロールにない場合は false。
    • getAllDeclaredCallerRoles

      SetSE<StringSE> getAllDeclaredCallerRoles()
      認証された呼び出し元が属するすべての静的 (宣言された) アプリケーションロールのリスト、または呼び出し元が認証されていないか宣言されたロールに属していない場合は空のリスト。

      静的 (宣言済み) ロールは、たとえば jakarta.annotation.security.DeclareRoles アノテーションを介してアプリケーション内で事前に宣言され、起動時に検出されるロールです。

      宣言されたロールの次に、基礎となる認可システムがオプションで潜在的に無限の動的ロールのセットを操作できる可能性があります。このような動的 (宣言されていない) ロールは、このメソッドによって返されるセットには含まれません。

      戻り値:
      現在の呼び出し元が属するすべての静的 (宣言された) ロールのリスト、または呼び出し元が認証されていない場合、静的 (宣言された) ロールを持たない場合は空のリスト。
      導入:
      4.0
    • hasAccessToWebResource

      boolean hasAccessToWebResource(StringSE resource, StringSE... methods)
      サーブレット仕様のセクション 13.8 で指定されているように、指定されたメソッドを使用して、呼び出し元が提供された「Web リソース」にアクセスできるかどうかを確認します。

      Web リソースが保護されていない(制約されている)場合、またはロールによって保護されていて、呼び出し元がそのロールに属している場合、呼び出し元はアクセスできます。

      パラメーター:
      resource - アクセスをテストする Web リソースの名前。これは、権限が関係するアプリケーション固有の Web リソースを識別する URLPatternSpec です。このパターンの完全な仕様については、WebResourcePermission(String, String) を参照してください。
      methods - HTTP メソッドを使用して、呼び出し元がこれらのメソッドのいずれかを使用して Web リソースにアクセスできるかどうかを確認します。メソッドが指定されていない場合、このメソッドは、呼び出し元がすべての HTTP メソッドを使用してリソースにアクセスできる場合にのみ true を返します。
      戻り値:
      呼び出し元が指定されたメソッドのいずれかを使用して Web リソースにアクセスできる場合は true、メソッドが指定されていない場合はサポートされているすべての HTTP メソッドを使用して Web リソースにアクセスできる場合は false を返します。それ以外の場合は false を返します。
    • authenticate

      呼び出し元との Web/HTTP ベースの認証ダイアログを開始または続行する必要があることをコンテナーに通知します(プログラムでトリガーします)。

      プログラムによるトリガーとは、コンテナーが呼び出し元が制約されたリソースにアクセスしようとしたかのように応答し、構成された認証メカニズム(HttpAuthenticationMechanism など)を呼び出すことによって動作することを意味します。

      認証ダイアログが開始されるか続行されるかは、認証ダイアログの (論理) 状態によって決まります。そのようなダイアログが現在進行中の場合、このメソッドを呼び出すとダイアログが継続されます。そのようなダイアログが進行中でない場合は、新しいダイアログが開始されます。この呼び出しで AuthenticationParameters.newAuthentication パラメーターに true の値を指定すると、ダイアログが進行中かどうかに関係なく、新しいダイアログを強制的に開始できます。

      このメソッドでは、HttpServletRequest および HttpServletResponse 引数を渡す必要があるため、有効なサーブレットコンテキストでのみ使用できます。

      パラメーター:
      request - 現在の Web リソース呼び出しに関連付けられている HttpServletRequest
      response - 指定された HttpServletRequest に関連付けられた HttpServletResponse
      parameters - 資格情報など、プログラムによる認証リクエストと共に提供されるパラメーター。認証ダイアログを続行するためにアプリケーションによって収集されます。
      戻り値:
      この呼び出しによってトリガーされた後の認証メカニズムの状態