インターフェース SecurityContext
public interface SecurityContext
SecurityContext は、プログラムによるセキュリティのためのアクセスポイントを提供します。アプリケーションコードが Jakarta Security を照会および操作するために使用することを目的とした注入可能な型。特に明記されていない限り、この型はすべての Jakarta EE コンテナー、特に Jakarta Servlet および Jakarta Enterprise Beans コンテナーで使用可能でなければなりません。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 AuthenticationStatus
authenticate(HttpServletRequest request, HttpServletResponse response, AuthenticationParameters parameters)
呼び出し元との Web/HTTP ベースの認証ダイアログを開始または続行する必要があることをコンテナーに通知します(プログラムでトリガーします)。PrincipalSE
getCallerPrincipal()
認証された呼び出し元の名前を表すプラットフォーム固有のjava.security.Principal
を取得します。現在の呼び出し元が認証されていない場合は null を取得します。<T extends PrincipalSE>
SetSE<T>getPrincipalsByType(ClassSE<T> pType)
認証された呼び出し元のサブジェクトから指定された型のすべてのプリンシパルを取得します。現在の呼び出し元が認証されていない場合、または指定された型がサブジェクトに見つからない場合は空のセットを取得します。boolean
hasAccessToWebResource(StringSE resource, StringSE... methods)
サーブレット仕様のセクション 13.8 で指定されているように、指定されたメソッドを使用して、呼び出し元が提供された「Web リソース」にアクセスできるかどうかを確認します。boolean
isCallerInRole(StringSE role)
認証された呼び出し元が指定された論理アプリケーション「ロール」に含まれているかどうかを確認します。
メソッドの詳細
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。
hasAccessToWebResource
boolean hasAccessToWebResource(StringSE resource, StringSE... methods)
サーブレット仕様のセクション 13.8 で指定されているように、指定されたメソッドを使用して、呼び出し元が提供された「Web リソース」にアクセスできるかどうかを確認します。Web リソースが保護されていない(制約されている)場合、またはロールによって保護されていて、呼び出し元がそのロールに属している場合、呼び出し元はアクセスできます。
- パラメーター:
resource
- アクセスをテストする Web リソースの名前。これは、権限が関係するアプリケーション固有の Web リソースを識別するURLPatternSpec
です。このパターンの完全な仕様については、WebResourcePermission(String, String)
を参照してください。methods
- 呼び出し元がこれらのメソッドの 1 つを使用して Web リソースにアクセスできるかどうかを確認する 1 つ以上のメソッド。- 戻り値:
- 呼び出し元が指定されたメソッドのいずれかを使用して Web リソースにアクセスできる場合は
true
、それ以外の場合はfalse
。
authenticate
AuthenticationStatus authenticate(HttpServletRequest request, HttpServletResponse response, AuthenticationParameters parameters)
呼び出し元との Web/HTTP ベースの認証ダイアログを開始または続行する必要があることをコンテナーに通知します(プログラムでトリガーします)。プログラムによるトリガーとは、コンテナーが呼び出し元が制約されたリソースにアクセスしようとしたかのように応答し、構成された認証メカニズム(
HttpAuthenticationMechanism
など)を呼び出すことによって動作することを意味します。認証ダイアログを開始するか続行するかは、認証ダイアログの(論理)状態によって異なります。そのようなダイアログが現在進行中の場合、このメソッドの呼び出しはそれを継続します。そのようなダイアログが進行中でない場合、新しいダイアログが開始されます。この呼び出しで
AuthenticationParameters.newAuthentication
パラメーターにtrue
の値を指定することにより、進行中のダイアログに関係なく、新しいダイアログを強制的に開始できます。このメソッドでは、
HttpServletRequest
およびHttpServletResponse
引数を渡す必要があるため、有効なサーブレットコンテキストでのみ使用できます。- パラメーター:
request
- 現在の Web リソース呼び出しに関連付けられているHttpServletRequest
。response
- 指定されたHttpServletRequest
に関連付けられたHttpServletResponse
。parameters
- 資格情報など、プログラムによる認証リクエストと共に提供されるパラメーター。認証ダイアログを続行するためにアプリケーションによって収集されます。- 戻り値:
- この呼び出しによってトリガーされた後の認証メカニズムの状態