Java プラットフォーム 1.2

java.io
クラス FilePermission

java.lang.Object
  |
  +--java.security.Permission
        |
        +--java.io.FilePermission

public final class FilePermission
extends Permission
implements Serializable

このクラスは、ファイルまたはディレクトリへのアクセスを表します。FilePermission は、パス名およびそのパス名に有効な一連のアクションで構成されます。

パス名は、指定されたアクションが許可されているファイルまたはディレクトリのパス名です。「/*」(「/」はファイル区切り文字 File.separatorChar) で終わるパス名は、そのディレクトリに格納されているすべてのファイルおよびディレクトリを示します。「/-」で終わるパス名は、そのディレクトリに格納されているすべてのファイルおよびサブディレクトリを (再帰的に) 示します。特別なトークン「<<ALL FILES>>」で構成されるパス名は、どのファイルとも一致します。

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

許可されるアクションは、1 つまたは複数のコンマで区切られたキーワードのリストからなる文字列としてコンストラクタに渡されます。指定できるキーワードは、「read」、「write」、「execute」、および「delete」です。これらのキーワードの意味は次のように定義されています。

read
読み込みアクセス権
write
書き込みアクセス権
execute
実行アクセス権。Runtime.exec の呼び出しを許可する。SecurityManager.checkExec に対応
delete
削除アクセス権。File.delete の呼び出しを許可する。SecurityManager.checkDelete に対応

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

FilePermission を許可するときには注意が必要です。さまざまなファイルおよびディレクトリへの読み込みアクセス、および特に書き込みアクセスを許可することによる影響を考えてください。書き込みアクションを持つ「<<ALL FILES>>」アクセス権は特に危険です。これは、ファイルシステム全体への書き込みアクセス権を許可します。事実上、JVM Runtime Environment を含む、システムバイナリの置換さえも許可します。

注: コードは、常にこのコードが格納されているディレクトリ (またはそのサブディレクトリ) 内からファイルを読み込むことができます。そのための明示的なアクセス権は必要ありません。

関連項目:
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 オブジェクトを返します。
 
クラス java.security.Permission から継承したメソッド
checkGuard, getName, toString
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

FilePermission

public FilePermission(String path,
                      String actions)
指定されたアクションを持つ新しい FilePermission オブジェクトを作成します。path はファイルまたはディレクトリのパス名で、actions はファイルまたはディレクトリで許可されるアクションのコンマで区切られたリストです。指定できるアクションは、「read」、「write」、「execute」、および「delete」です。

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

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

パラメータ:
path - ファイルまたはディレクトリのパス名
actions - アクション文字列
メソッドの詳細

implies

public boolean implies(Permission p)
この FilePermission オブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。

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

パラメータ:
p - 検査対象のアクセス権
戻り値:
指定されたアクセス権がこのオブジェクトに含まれている場合は true、そうでない場合は false
オーバーライド:
クラス Permission 内の implies

equals

public boolean equals(Object obj)
2 つの FilePermission オブジェクトが等しいかどうかを判定します。obj が FilePermission であり、このオブジェクトと同じパス名およびアクションを持つかどうかを調べます。

パラメータ:
obj - このオブジェクトと等しいかどうかをテストされるオブジェクト
戻り値:
obj が FilePermission であり、この FilePermission オブジェクトと同じパス名およびアクションを持つ場合は true
オーバーライド:
クラス Permission 内の equals

hashCode

public int hashCode()
このオブジェクトのハッシュコード値を返します。
戻り値:
このオブジェクトのハッシュコード値
オーバーライド:
クラス Permission 内の hashCode

getActions

public String getActions()
アクションの「正規の文字列表現」を返します。つまり、このメソッドは存在するアクションを常に read、write、execute、delete の順で返します。たとえば、この FilePermission オブジェクトが write と read の両方のアクションを許可する場合、getActions の呼び出しは文字列「read,write」を返します。
戻り値:
アクションの正規の文字列表現
オーバーライド:
クラス Permission 内の getActions

newPermissionCollection

public PermissionCollection newPermissionCollection()
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 オブジェクトによって正しく処理されます。
戻り値:
FilePermissions を格納するために適した新しい PermissionCollection オブジェクト
オーバーライド:
クラス Permission 内の newPermissionCollection

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.