モジュール java.base
パッケージ javax.security.auth

クラスPrivateCredentialPermission

java.lang.Object
java.security.Permission
javax.security.auth.PrivateCredentialPermission
すべての実装されたインタフェース:
Serializable, Guard

public final class PrivateCredentialPermission extends Permission
このクラスは、特定のSubjectに属する非公開資格をアクセスから保護します。 Subjectは、PrincipalのSetによって表されます。

このPermissionのターゲット名は、Credentialのクラス名およびPrincipalのSetを指定します。 このPermissionのアクションに有効な値はreadだけです。 ターゲット名は、次の構文に従っている必要があります。

      CredentialClass {PrincipalClass "PrincipalName"}*
 
たとえば次のアクセス権は、com.sun.Principalを名前「duke」で保持するSubjectが所有するcom.sun.PrivateCredentialへのアクセスを許可します。 次に示す例すべてと同様、この例でも単純化するためにCodebase、Signedby、Principalの情報をgrant文に含んでいませんが、実際のポリシー構成では必要に応じて指定する必要があります。

    grant {
      permission javax.security.auth.PrivateCredentialPermission
              "com.sun.PrivateCredential com.sun.Principal \"duke\"",
              "read";
    };
 
CredentialClassが「*」の場合は、指定したSubjectに属するすべての非公開資格へのアクセスが許可されます。 「PrincipalName」が「*」の場合は、実際のPrincipalNameに関係なく、指定したPrincipalを保持する任意のSubjectが所有する、指定した資格へのアクセスが許可されます。 たとえば、a.b.Principalを保持する任意のSubjectが所有するa.b.Credentialへのアクセスを許可するには次のようにします。
    grant {
      permission javax.security.auth.PrivateCredentialPermission
              "a.b.Credential a.b.Principal "*"",
              "read";
    };
 
PrincipalClassとPrincipalNameの両方が「*」になっている場合は、任意のSubjectによって所有されている指定した資格へのアクセスが許可されます。

また、PrincipalClass/PrincipalNameの対は、繰返し指定できます。

    grant {
      permission javax.security.auth.PrivateCredentialPermission
              "a.b.Credential a.b.Principal "duke" c.d.Principal "dukette"",
              "read";
    };
 
上記の例では、「duke」という名前の「a.b.Principal」と、「dukette」という名前の「c.d.Principal」の少なくとも2つの関連するPrincipalを持つSubjectに属する非公開資格「a.b.Credential」へのアクセスが許可されます。

導入されたバージョン:
1.4
関連項目: