JavaTM 2 Platform
Standard Ed. 5.0

java.io
クラス FilePermission

java.lang.Object
  上位を拡張 java.security.Permission
      上位を拡張 java.io.FilePermission
すべての実装されたインタフェース:
Serializable, Guard

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 を含む、システムバイナリの置換さえも許可します。

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

導入されたバージョン:
1.2
関連項目:
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 を返します。

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

equals

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

定義:
クラス Permission 内の equals
パラメータ:
obj - このオブジェクトと等しいかどうかを判定するオブジェクト
戻り値:
obj が FilePermission であり、この FilePermission オブジェクトと同じパス名およびアクションを持つ場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
このオブジェクトのハッシュコード値を返します。

定義:
クラス Permission 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

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", "read,write",

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


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

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

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。