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

クラスPermissions

  • すべての実装されたインタフェース:
    Serializable

    public final class Permissions
    extends PermissionCollection
    implements Serializable
    Permissionsの異種コレクションを表します。 つまり、PermissionCollectionに組み入れられる各種のPermissionオブジェクトを保持します。 たとえば、java.io.FilePermissionオブジェクトのどれかがこのクラスのインスタンスに追加されると、すべて1つのPermissionCollectionに格納されます。 これは、FilePermissionクラスのnewPermissionCollectionメソッドの呼出しによって返されるPermissionCollectionです。 同様に、java.lang.RuntimePermissionオブジェクトはどれもRuntimePermissionクラスのnewPermissionCollectionメソッドの呼出しによって返されるPermissionCollectionに格納されます。 このため、このクラスはPermissionCollectionのコレクションを表します。

    addメソッドを呼び出してPermissionを追加すると、Permissionは適切なPermissionCollectionに追加されます。 そのようなコレクションが存在しない場合、Permissionオブジェクトのクラスが指定され、newPermissionCollectionメソッドがそのクラスで呼び出されて、PermissionCollectionを作成しPermissionsオブジェクトに追加します。 newPermissionCollectionがnullを返すと、ハッシュ表を使うデフォルトのPermissionCollectionが作成および使用されます。 ハッシュ表の各エントリは、Permissionオブジェクトを鍵および値として格納します。

    elementsメソッドで返されるEnumerationsはフェイルファストではありません。 コレクションの列挙中に、コレクションへ変更を加えてはいけません。

    導入されたバージョン:
    1.2
    関連項目:
    Permission, PermissionCollection, AllPermission
    • コンストラクタの詳細

      • Permissions

        public Permissions()
        PermissionCollectionを保持しない新規Permissionsオブジェクトを作成します。
    • メソッドの詳細

      • add

        public void add​(Permission permission)
        指定されたpermissionオブジェクトを、それが属するクラスのPermissionCollectionに追加します。 たとえば、permissionがFilePermissionである場合、このPermissionsオブジェクトに格納されたFilePermissionCollectionに追加します。 適切なコレクションが存在しない場合、このメソッドは新規PermissionCollectionオブジェクトを作成し、そこにアクセス権を追加します。
        定義:
        add、クラス: PermissionCollection
        パラメータ:
        permission - 追加されるPermissionオブジェクト。
        例外:
        SecurityException - このPermissionsオブジェクトが読取り専用としてマークされている場合。
        関連項目:
        PermissionCollection.isReadOnly()
      • implies

        public boolean implies​(Permission permission)
        指定されたアクセス権のクラスに対するこのオブジェクトのPermissionCollectionが、permissionオブジェクトで表現されるアクセス権を包含するかどうかを確認します。 適切なPermissionCollection (FilePermissionのFilePermissionCollectionなど)内のアクセス権の組み合わせが、指定されたアクセス権を包含する場合はtrueを返します。

        たとえば、このPermissionsオブジェクト内にFilePermissionCollectionがあり、/tmpディレクトリの全サブディレクトリ内の全ファイルに対する読取りアクセスを指定するFilePermission、および/tmp/scratch/fooディレクトリの全ファイルに対する書込みアクセスを指定するFilePermissionを1つずつ保持すると仮定します。 ここで、/tmp/scratch/fooディレクトリのファイルに対する読取りアクセスと書込みアクセスの両方を指定するアクセス権を使用してimpliesメソッドを呼び出すと、trueが返されます。

        さらに、このPermissionCollectionがAllPermissionを保持する場合、このメソッドは常にtrueを返します。

        定義:
        implies、クラス: PermissionCollection
        パラメータ:
        permission - チェック対象のPermissionオブジェクト。
        戻り値:
        アクセス権が所属先のPermissionCollection内のアクセス権に包含される場合はtrue、そうでない場合はfalse。