11.3.3. Subject クラスおよび Principal クラス
リソースへのアクセスを承認するには、アプリケーションが最初に要求のソースを認証する必要があります。JAAS フレームワークは、リクエストのソースを表すサブジェクトという用語を定義します。
Subject クラスは JAAS の中心クラスです。Subject は、個人やサービスなどの単一のエンティティーの情報を表します。エンティティーのプリンシパル、パブリック認証情報、およびプライベートクレデンシャルをカバーします。JAAS API は既存の Java 2 java.security.Principal インターフェースを使用してプリンシパルを表します。これは基本的に型指定された名前です。
認証プロセス中に、サブジェクトには関連するアイデンティティーまたはプリンシパルが入力されます。サブジェクトには多くのプリンシパルが含まれる場合があります。たとえば、あるユーザーが名前プリンシパル(John Doe)、ソーシャルセキュリティー番号プリンシパル(123-45-6789)、およびユーザー名プリンシパル(johnd)を含めることで、サブジェクトを他のサブジェクトと区別するのに役立ちます。サブジェクトに関連付けられたプリンシパルを取得するには、以下の 2 つの方法を使用できます。
public Set getPrincipals() {...}
public Set getPrincipals(Class c) {...}
public Set getPrincipals() {...}
public Set getPrincipals(Class c) {...}
getPrincipals() サブジェクトに含まれるすべてのプリンシパルを返します。getPrincipals(Class c) クラス c のインスタンス、またはそのサブクラスの 1 つのインスタンスのみを返します。サブジェクトに一致するプリンシパルがない場合は、空のセットが返されます。
java.security.acl.Group インターフェースは java.security.Principal のサブインターフェースであるため、プリンシパルセット内のインスタンスは、他のプリンシパルまたはプリンシパルのグループの論理グループを表す可能性があることに注意してください。