クラスFilePermission

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

@Deprecated(since="25"、 forRemoval=true) public final class FilePermission 拡張Permission実装Serializable
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
この権限は、セキュリティ・マネージャがサポートされなくなったため、リソースへのアクセスの制御には使用できません。
このクラスは、ファイルまたはディレクトリへのアクセスを表します。 FilePermissionは、パス名と、そのパス名に対して有効なアクションの集合からなります。

パス名には、指定したアクションを許可するファイルまたはディレクトリのパス名を指定します。 「/*」(「/」はファイル区切り文字File.separatorChar)で終わるパス名は、そのディレクトリに含まれるすべてのファイルとディレクトリを表します。 「/-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリを(再帰的に)表します。 このようなパス名はワイルドカード・パス名と呼ばれます。 それ以外の場合は、単純なパス名です。

パス名に特殊なトークン「<<ALL FILES>>」を指定した場合は、すべてのファイルに一致します。

ノート: 1つの「*」で構成されるパス名は、現在のディレクトリのすべてのファイルを示し、1つの「-」で構成されるパス名は、現在のディレクトリのすべてのファイル、および(再帰的に)現在のディレクトリに格納されているすべてのファイルおよびサブディレクトリを示します。

アクションは、1つ以上のカンマ区切りのキーワードのリストを含む文字列内のコンストラクタに渡されます。 指定できるキーワードは、「read」、「write」、「execute」、「delete」、および「readlink」です。

アクション文字列は、処理の前に小文字に変換されます。

導入されたバージョン:
1.2
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    FilePermission(String path, String actions)
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    指定されたアクションを持つ新しいFilePermissionオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    2つのFilePermissionオブジェクトが等しいかどうかを判定します。
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    アクションの「正規の文字列表現」を返します。
    int
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このオブジェクトのハッシュ・コード値を返します。
    boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このFilePermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    FilePermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。

    クラス Permissionで宣言されたメソッド

    checkGuard, getName, toString
    修飾子と型
    メソッド
    説明
    void
    アクセス権のガード・インタフェースを実装します。
    final String
    このPermissionの名前を返します。
    このPermissionを記述する文字列を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • FilePermission

      public FilePermission(String path, String actions)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      指定されたアクションを持つ新しいFilePermissionオブジェクトを作成します。pathはファイルまたはディレクトリのパス名で、actionsはファイルまたはディレクトリで許可されるアクションのカンマで区切られたリストです。 指定できるアクションは、「read」、「write」、「execute」、「delete」、および「readlink」です。

      「/*」(「/」はファイル区切り文字File.separatorChar)で終わるパス名は、そのディレクトリに含まれるすべてのファイルとディレクトリを表します。 「/-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリを(再帰的に)表します。 特殊なパス名「<<ALL FILES>>」は、すべてのファイルに一致します。

      1つの「*」で構成されるパス名は、現在のディレクトリのすべてのファイルを示し、1つの「-」で構成されるパス名は、現在のディレクトリのすべてのファイル、および(再帰的に)現在のディレクトリに格納されているすべてのファイルおよびサブディレクトリを示します。

      空の文字列を含むパス名は、空のパスを表します。

      実装上のノート:
      この実装では、jdk.io.permissionsUseCanonicalPathシステム・プロパティによってpath引数の処理方法と格納方法が決定されます。

      システム・プロパティの値がtrueに設定されている場合、pathは正規化され、cpathという名前のStringオブジェクトとして格納されます。 これは、相対パスが絶対パスに変換され、Windows DOSスタイルの8.3パスが長いパスに展開され、シンボリック・リンクがそのターゲットに解決されることを意味します。

      システム・プロパティの値がfalseに設定されている場合、pathnormalizationの後にnpathという名前のPathオブジェクトに変換されます。 正規化は実行されず、基礎となるファイル・システムにはアクセスされません。 変換中にInvalidPathExceptionがスローされた場合、このFilePermissionには無効のラベルが付けられます。

      いずれの場合も、正規化または正規化の前に、ワイルドカードpathの末尾にある"*"または"-"文字が削除されます。 これは、別のワイルドカード・フラグ・フィールドに格納されます。

      この実装では、jdk.io.permissionsUseCanonicalPathシステム・プロパティのデフォルト値はfalseです。

      値はセキュリティ・プロパティを使用して同じ名前で設定することもできますが、システム・プロパティを設定するとセキュリティ・プロパティ値がオーバーライドされます。

      パラメータ:
      path - ファイルまたはディレクトリのパス名。
      actions - アクション文字列。
      スロー:
      IllegalArgumentException - アクションがnull、空、不正、または指定された可能なアクション以外のアクションである場合
  • メソッドの詳細

    • implies

      public boolean implies(Permission p)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このFilePermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。

      つまり、このメソッドは次の場合にtrueを返します。

      • pがFilePermissionのインスタンスである。
      • pのアクションは、このオブジェクトのアクションの適切なサブセットである
      • pのパス名がこのオブジェクトのパス名に含まれている。 たとえば、「/tmp/*」は「/tmp/foo」を含んでいる。これは、「/tmp/*」には「foo」という名前のファイルも含めて「/tmp」ディレクトリ内のすべてのファイルが含まれているため。

      正確には、単純なパス名は、同じ場合のみ、別の単純なパス名を意味します。 単純なパス名は、ワイルドカードのパス名を示しません。 ワイルドカードのパス名は、後者が暗示するすべての単純なパス名が前者によって暗示されている場合にのみ、別のワイルドカードのパス名を示します。 ワイルドカード・パス名は、単純なパス名を意味

      • ワイルドカード・フラグが"*"の場合、単純なパス名のパスはワイルドカードのパス名のパスの内側である必要があります。
      • ワイルドカード・フラグが"-"の場合、単純なパス名のパスはワイルドカード・パス名のパス内で再帰的に指定する必要があります。

      "<<ALL FILES>>"は、他のすべてのパス名を意味します。 "<<ALL FILES>>"自体を除き、パス名は"<<ALL FILES>>"を意味します。

      定義:
      implies、クラスPermission
      実装上のノート:
      jdk.io.permissionsUseCanonicalPathtrueの場合、ベース名(パス名の名前順の最後の名前)を前者から削除した後、残りの部分が後者と等しい場合にのみ、ワイルドカードcpath内で単純なcpathが再帰的に使用されるのは、前者が後者から始まる場合のみです。

      jdk.io.permissionsUseCanonicalPathfalseである場合、単純なnpathはワイルドカードnpath内にあり、 simple_npath.relativize(wildcard_npath)が厳密に".."である場合にのみ、単純なnpathはワイルドカードnpathの中に再帰的に存在し、simple_npath.relativize(wildcard_npath)が一連の1つ以上の".."。 つまり、"/-"は"/foo"を意味しますが、"foo"は意味しません。

      無効なFilePermissionは、それ自体以外のオブジェクトを意味しません。 無効なFilePermissionは、それ以外のオブジェクトによって暗示されていないか、"<<ALL FILES>>"のFilePermissionは無効なFilePermissionのスーパーセットです。 2つのFilePermissionが同じ無効なパスで作成されている場合でも、一方は他方を意味しません。

      パラメータ:
      p - チェック対象のアクセス権。
      戻り値:
      指定されたアクセス権がnullではなく、このオブジェクトに含まれている場合はtrue。それ以外の場合はfalse
    • equals

      public boolean equals(Object obj)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      2つのFilePermissionオブジェクトが等しいかどうかを判定します。 objがFilePermissionであり、このオブジェクトと同じパス名とアクションを持っているかどうかを判定します。
      定義:
      equals、クラスPermission
      実装上のノート:
      具体的には、ワイルドカード・フラグが同じで、cpath (jdk.io.permissionsUseCanonicalPathtrueの場合)またはnpath (jdk.io.permissionsUseCanonicalPathfalseの場合)が等しい場合にのみ、2つのパス名が同じになります。 または、両方とも"<<ALL FILES>>"です。

      jdk.io.permissionsUseCanonicalPathfalseの場合、無効なFilePermissionは、同じ無効なパスを使用して作成された場合でも、それ自体以外のどのオブジェクトとも等しくありません。

      パラメータ:
      obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
      戻り値:
      objがFilePermissionであり、このFilePermissionオブジェクトと同じパス名とアクションを持っている場合はtrue。それ以外の場合はfalse
      関連項目:
    • hashCode

      public int hashCode()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このオブジェクトのハッシュ・コード値を返します。
      定義:
      hashCode、クラスPermission
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • getActions

      public String getActions()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      アクションの「正規の文字列表現」を返します。 つまり、このメソッドは常にread、write、execute、delete、readlinkの順序で現在のアクションを返します。 たとえば、このFilePermissionオブジェクトがwriteとreadの両方のアクションを許可する場合、getActionsを呼び出すと、「read,write」という文字列が返されます。
      定義:
      getActions、クラスPermission
      戻り値:
      アクションの正規の文字列表現。
    • newPermissionCollection

      public PermissionCollection newPermissionCollection()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      FilePermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。

      FilePermissionオブジェクトは、任意の順序でコレクションに挿入されるように、さらにPermissionCollectionのimpliesメソッドが効率的に(および安定して)実装されるように格納される必要があります。

      たとえば、次の2つのFilePermissionがあり、

      1. "/tmp/-", "read"
      2. "/tmp/scratch/foo", "write"

      そして次のFilePermissionでimpliesメソッドを呼び出す場合

          "/tmp/scratch/foo", "read,write",
      
      implies関数は、「/tmp/-」および「/tmp/scratch/foo」の両方のアクセス権を考慮しなければならず、そのため、実質的なアクセス権は「read,write」であり、impliesはtrueを返します。 FilePermissionの「implies」セマンティックスは、このnewPermissionCollectionメソッドによって返されるPermissionCollectionオブジェクトによって正しく処理されます。

      オーバーライド:
      newPermissionCollection、クラスPermission
      戻り値:
      FilePermissionを格納するのに適切な新規PermissionCollectionオブジェクト。