public final class FilePermission extends Permission implements Serializable
パス名には、指定したアクションを許可するファイルまたはディレクトリのパス名を指定します。 「/*」(「/」はファイル区切り文字File.separatorChar)で終わるパス名は、そのディレクトリに含まれるすべてのファイルとディレクトリを表します。 「/-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリを(再帰的に)表します。 パス名に特殊なトークン「<<ALL FILES>>」を指定した場合は、すべてのファイルに一致します。
ノート: 1つの「*」で構成されるパス名は、現在のディレクトリのすべてのファイルを示し、1つの「-」で構成されるパス名は、現在のディレクトリのすべてのファイル、および(再帰的に)現在のディレクトリに格納されているすべてのファイルおよびサブディレクトリを示します。
許可するアクションは、カンマで区切られた1個以上のキーワードのリストを内容とする文字列としてコンストラクタに引き渡されます。 指定できるキーワードは、「read」、「write」、「execute」、「delete」、および「readlink」です。 それぞれの意味は、次のように定義されます。
Runtime.execの呼出しを許可します。 SecurityManager.checkExecに対応します。
File.deleteの呼出しを許可します。 SecurityManager.checkDeleteに対応します。
readSymbolicLink メソッドを呼び出すことにより、シンボリック・リンクのターゲットを読み取ることができます。
アクション文字列は、処理の前に小文字に変換されます。
FilePermissionを許可する場合には注意してください。 さまざまなファイルやディレクトリへの読取りアクセス、特に書込みアクセスを許可するとどうなるかをよく検討してください。 writeアクションに対して「<<ALL FILES>>」アクセス権を指定するのは特に危険です。 これは、ファイル・システム全体に対する書込みを許可するということです。 このような指定をすると、事実上、JVM実行環境を含め、システム・バイナリを置き換えることが可能になってしまいます。
ノート: コードは同一ディレクトリ(またはそのディレクトリのサブディレクトリ)内のファイルを常に読み取ることができるので、読取り時のアクセス権を明示する必要はありません。
Permission, Permissions, PermissionCollection| コンストラクタ | 説明 |
|---|---|
FilePermission(String path, String actions) |
指定されたアクションを持つ新しいFilePermissionオブジェクトを作成します。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
boolean |
equals(Object obj) |
2つのFilePermissionオブジェクトが等しいかどうかを判定します。
|
String |
getActions() |
アクションの「正規の文字列表現」を返します。
|
int |
hashCode() |
このオブジェクトのハッシュ・コード値を返します。
|
boolean |
implies(Permission p) |
このFilePermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。
|
PermissionCollection |
newPermissionCollection() |
FilePermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。
|
checkGuard, getName, toStringpublic FilePermission(String path, String actions)
「/*」(「/」はファイル区切り文字File.separatorChar)で終わるパス名は、そのディレクトリに含まれるすべてのファイルとディレクトリを表します。 「/-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリを(再帰的に)表します。 特殊なパス名「<<ALL FILES>>」は、すべてのファイルに一致します。
1つの「*」で構成されるパス名は、現在のディレクトリのすべてのファイルを示し、1つの「-」で構成されるパス名は、現在のディレクトリのすべてのファイル、および(再帰的に)現在のディレクトリに格納されているすべてのファイルおよびサブディレクトリを示します。
空の文字列を含むパス名は、空のパスを表します。
path - ファイルまたはディレクトリのパス名。actions - アクション文字列。IllegalArgumentException - アクションがnullの場合、空の場合、または指定された有効なアクション以外のアクションを含む場合。public boolean implies(Permission p)
つまり、このメソッドは次の場合にtrueを返します。
implies、クラスPermissionp - チェック対象のアクセス権。nullではなく、このオブジェクトに含まれている場合はtrue。それ以外の場合はfalse。public boolean equals(Object obj)
equals、クラスPermissionobj - このオブジェクトと等しいかどうかが判定されるオブジェクト。true。それ以外の場合はfalse。Object.hashCode()、HashMappublic int hashCode()
hashCode、クラスPermissionObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public String getActions()
getActionsを呼び出すと、「read,write」という文字列が返されます。 getActions、クラスPermissionpublic PermissionCollection newPermissionCollection()
FilePermissionオブジェクトは、任意の順序でコレクションに挿入されるように、さらにPermissionCollectionのimpliesメソッドが効率的に(および安定して)実装されるように格納される必要があります。
たとえば、次の2つのFilePermissionがあり、
"/tmp/-", "read"
"/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 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。