| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.lang.SecurityManager
public class SecurityManager
セキュリティーマネージャーとは、アプリケーションがセキュリティーポリシーを実装できるクラスです。セキュリティーマネージャーを使えば、セキュリティーを損なう恐れのある操作を実行する前に、操作が何であるかということと、セキュリティーコンテキスト内でその操作の実行が許可されているかどうかがアプリケーションから判断できます。アプリケーションは、そのような操作を禁止したり許可したりすることができます。
SecurityManager クラスには、名前が check で始まるメソッドが多数あります。これらのメソッドは、Java ライブラリ内の各種メソッドによって、セキュリティーを損なう可能性のある操作を実行する前に呼び出されます。このような check メソッド呼び出しの一般的な例を次に示します。 
 
 
     SecurityManager security = System.getSecurityManager();
     if (security != null) {
         security.checkXXX(argument,  . . . );
     }
 
これにより、セキュリティーマネージャーには、例外をスローしてオペレーションの実行を阻止する機会が与えられます。セキュリティーマネージャールーチンは、操作が許可される場合は何も行わずに復帰します。 操作が許可されない場合は SecurityException をスローします。ただし、checkTopLevelWindow はこうした規約の唯一の例外で、boolean 値を返します。
 
現在のセキュリティーマネージャーを設定するには、System クラスの setSecurityManager メソッドを使用します。現在のセキュリティーマネージャーを取得するには getSecurityManager メソッドを使用します。
 
 
指定されたアクセス権が示すアクセス要求が許可されるかどうかを調べるには、特別なメソッド checkPermission(java.security.Permission) を使用します。デフォルトの実装では、次のメソッドが呼び出されます。
 
 
AccessController.checkPermission(perm);
 
要求されたアクセスが許可される場合には、checkPermission は何もしないで復帰します。許可されない場合は、SecurityException がスローされます。
 
Java 2 SDK v1.2 の SecurityManager にあるその他の check 系メソッドのデフォルトの実装では、SecurityManager の checkPermission メソッドが呼び出されます。この方法で、要求された操作の実行に必要なアクセス権が呼び出し側スレッドにあるかどうかを調べます。
 
 
アクセス権の引数が 1 つだけの checkPermission メソッドは常に、現在実行中のスレッドのコンテキスト内だけでセキュリティーチェックを実行します。しかし実際には、指定されたコンテキスト内で行うセキュリティーチェックを、「別の」コンテキスト内から (たとえば、ワークスレッド内から) 行わなければならない場合もあります。このため、コンテキスト引数を持つ getSecurityContext メソッドおよび checkPermission メソッドが提供されています。getSecurityContext メソッドは、現在の呼び出し側コンテキストのスナップショットを返します。デフォルトの実装では AccessControlContext オブジェクトを返します。呼び出しの例を次に示します。
 
 
Object context = null; SecurityManager sm = System.getSecurityManager(); if (sm != null) context = sm.getSecurityContext();
アクセス権に加えてコンテキストオブジェクトも受け取る checkPermission メソッドは、実行中のスレッドのコンテキストではなく、渡されたコンテキストに従ってアクセスを判定します。このため、別のコンテキスト内のコードは、アクセス権と直前に保存したコンテキストオブジェクトを渡すことによって、このメソッドを呼び出すことができます。次に示す呼び出し例では、上の例で取得したセキュリティーマネージャー sm を使用しています。
 
 
if (sm != null) sm.checkPermission(permission, context);
アクセス権は、カテゴリ File、Socket、Net、Security、Runtime、Property、AWT、Reflect、Serializable のどれかに分類されます。これら各種のアクセス権カテゴリを管理するクラスは、java.io.FilePermission、java.net.SocketPermission、java.net.NetPermission、java.security.SecurityPermission、java.lang.RuntimePermission、java.util.PropertyPermission、java.awt.AWTPermission、java.lang.reflect.ReflectPermission および java.io.SerializablePermission です。 
 
 
FilePermission と SocketPermission 以外のクラスは、java.security.BasicPermission のサブクラスです。 この java.security.BasicPermission 自身は、アクセス権のトップレベルである java.security.Permission の抽象サブクラスです。BasicPermission は、「exitVM」、「setFactory」、「queuePrintJob」といった、階層的プロパティー命名規則に従う名前を含むすべてのアクセス権のために必要な機能を定義します。名前の末尾には「*」や「.*」を付けて、ワイルドカードを指定できます。たとえば、「a.*」や「*」は有効な名前ですが、「*a」や「a*b」は無効です。
 
FilePermission と SocketPermission は、アクセス権のトップレベル java.security.Permission のサブクラスです。これらのクラスは、BasicPermission よりも複雑な名前構文を持ち、BasicPermission ではなく Permission から直接サブクラス化されます。たとえば、java.io.FilePermission オブジェクトの場合、アクセス権の名前はファイルまたはディレクトリのパス名です。
 
アクセス権クラスの中には、オブジェクトに許可されているアクションを示すアクションリストを持つものがあります。たとえば java.io.FilePermission オブジェクトの場合、「read, write」といったアクションリストは、特定のファイルまたは指定されたディレクトリにあるファイルに対して実行できるアクションを示します。
 
 
その他のアクセス権クラスは、名前の付いたアクセス権 (名前付きアクセス権) に使用します。名前付きアクセス権は、名前は持ちますが、アクションリストを持ちません。名前付きアクセス権はあってもなくてもかまいません。
注:すべてのアクセス権を暗黙的に指定する java.security.AllPermission というアクセス権もあります。これは、すべての (あるいは多くの) アクセス権を要求する複数のタスクを実行する必要がある、システム管理者の作業を単純化するためのアクセス権です。
 
アクセス権に関する情報については、「JDK でのアクセス権」を参照してください。このドキュメントには、SecurityManager の各種 check メソッドや、そのようなメソッドのデフォルトの実装に必要なアクセス権の一覧表があります。また、アクセス権を必要とするバージョン 1.2 のすべてのメソッドと、各メソッドに必要なアクセス権をまとめた表もあります。
 
JDK での SecurityManager に関する変更点と、1.1 形式のセキュリティーマネージャーを移植する際のアドバイスについては、セキュリティードキュメントを参照してください。
ClassLoader, 
SecurityException, 
checkTopLevelWindow, 
getSecurityManager, 
setSecurityManager, 
AccessController, 
AccessControlContext, 
AccessControlException, 
Permission, 
BasicPermission, 
FilePermission, 
SocketPermission, 
PropertyPermission, 
RuntimePermission, 
AWTPermission, 
Policy, 
SecurityPermission, 
ProtectionDomain| フィールドの概要 | |
|---|---|
| protected  boolean | inCheck推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| コンストラクタの概要 | |
|---|---|
| SecurityManager()新しい SecurityManagerを構築します。 | |
| メソッドの概要 | |
|---|---|
|  void | checkAccept(String host,
            int port)指定されたホストとポート番号からのソケット接続を受け取ることが、呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkAccess(Thread t)呼び出し側のスレッドがスレッド引数の修正を許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkAccess(ThreadGroup g)呼び出し側のスレッドが、スレッドグループの引数を修正することを許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkAwtEventQueueAccess()AWT イベントキューへのアクセスが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkConnect(String host,
             int port)指定されたホストとポート番号へのソケット接続をオープンすることが、呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkConnect(String host,
             int port,
             Object context)指定されたセキュリティコンテキストが、指定されたホストとポート番号へのソケット接続をオープンするアクセス権を持っていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkCreateClassLoader()呼び出し側のスレッドが新しいクラスローダの作成を許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkDelete(String file)指定されたファイルを削除することが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkExec(String cmd)サブプロセスの作成が呼び出し側のスレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkExit(int status)指定されたステータスコードで Java Virtual Machine を停止させる許可を、呼び出し側のスレッドが持っていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkLink(String lib)文字列引数ファイルで指定されたライブラリコードへの動的リンクが、呼び出し側のスレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkListen(int port)指定されたローカルポート番号で接続要求を待機することが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkMemberAccess(Class<?> clazz,
                  int which)メンバへのアクセスが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkMulticast(InetAddress maddr)IP マルチキャスト (join/leave/send/receive) の使用が呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkMulticast(InetAddress maddr,
               byte ttl)推奨されていません。 代わりに #checkPermission(java.security.Permission) を使用する | 
|  void | checkPackageAccess(String pkg)引数で指定されたパッケージへのアクセスが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkPackageDefinition(String pkg)引数で指定されたパッケージ内のクラスを定義することが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkPermission(Permission perm)指定されたアクセス権で要求したアクセスが、現在有効なセキュリティポリシーに照らして許可されなかった場合に SecurityExceptionをスローします。 | 
|  void | checkPermission(Permission perm,
                Object context)指定されたセキュリティーコンテキストについて、指定されたアクセス権が示すリソースへのアクセスを拒否された場合に SecurityExceptionをスローします。 | 
|  void | checkPrintJobAccess()印刷ジョブ要求の開始が呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkPropertiesAccess()システムプロパティのアクセスまたは修正が呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkPropertyAccess(String key)keyで指定されたシステムプロパティへのアクセスが、呼び出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。 | 
|  void | checkRead(FileDescriptor fd)指定されたファイル記述子からの読み取りが呼び出し側のスレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkRead(String file)文字列引数で指定されたファイルの読み取りが呼び出し側のスレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkRead(String file,
          Object context)文字列引数で指定されたファイルを読み取る許可が、指定されたセキュリティーコンテキストにない場合に、 SecurityExceptionをスローします。 | 
|  void | checkSecurityAccess(String target)指定されたアクセス権ターゲット名のアクセス権を許可するか、あるいは拒否するかを判定します。 | 
|  void | checkSetFactory()ServerSocketまたはSocketが使用するソケットファクトリ、またはURLが使用するストリームハンドラファクトリを設定することが呼び出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。 | 
|  void | checkSystemClipboardAccess()システムクリップボードへのアクセスが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  boolean | checkTopLevelWindow(Object window)window引数で指定されたトップレベルのウィンドウを表示するための信頼が呼び出し側スレッドにない場合に、falseを返します。 | 
|  void | checkWrite(FileDescriptor fd)指定されたファイル記述子への書き込みが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
|  void | checkWrite(String file)文字列引数で指定されたファイルへの書き込みが呼び出し側スレッドに許可されていない場合に、 SecurityExceptionをスローします。 | 
| protected  int | classDepth(String name)推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| protected  int | classLoaderDepth()推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| protected  ClassLoader | currentClassLoader()推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| protected  Class<?> | currentLoadedClass()推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| protected  Class[] | getClassContext()現在の例外実行スタックをクラスの配列として返します。 | 
|  boolean | getInCheck()推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
|  Object | getSecurityContext()現在の実行環境をカプセル化するオブジェクトを生成します。 | 
|  ThreadGroup | getThreadGroup()このメソッドを呼び出したときに作成される、任意の新しいスレッドのインスタンスを生成するための、スレッドグループを返します。 | 
| protected  boolean | inClass(String name)推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| protected  boolean | inClassLoader()推奨されていません。 このタイプのセキュリティーチェックは推奨されません。代わりに checkPermissionの呼び出しを使用することをお勧めします。 | 
| クラス java.lang.Object から継承されたメソッド | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| フィールドの詳細 | 
|---|
@Deprecated protected boolean inCheck
checkPermission の呼び出しを使用することをお勧めします。true です。そうでない場合は false です。
| コンストラクタの詳細 | 
|---|
public SecurityManager()
SecurityManager を構築します。
  セキュリティーマネージャーがすでにインストールされている場合、このメソッドは最初にセキュリティーマネージャーの checkPermission メソッドを呼び出します。 このとき、RuntimePermission("createSecurityManager") アクセス権を使用することにより、呼び出し側のスレッドが新しいセキュリティーマネージャーを作成するアクセス権を確実に持つようにします。その結果、SecurityException がスローされることがあります。
SecurityException - セキュリティマネージャがすでにあり、その checkPermission メソッドが、新しいセキュリティマネージャの作成を許可しない場合System.getSecurityManager(), 
checkPermission, 
RuntimePermission| メソッドの詳細 | 
|---|
@Deprecated public boolean getInCheck()
checkPermission の呼び出しを使用することをお勧めします。
inCheck フィールドの値。セキュリティーチェックが進行中の場合は true、そうでない場合は falseinCheckprotected Class[] getClassContext()
配列の長さは、実行スタック上にあるメソッドの数になります。インデックス 0 の要素は現在メソッドを実行中のクラス、インデックス 1 の要素はそのメソッドの呼び出しクラスとなります。
@Deprecated protected ClassLoader currentClassLoader()
checkPermission の呼び出しを使用することをお勧めします。
ClassLoader.getSystemClassLoader() により返されるシステムクラスローダーとも、その上位オブジェクトのどれとも等しくないクラスローダーです。
 
このメソッドは、次の 3 つの場合に null コードを返します。
AccessController.doPrivileged(java.security.PrivilegedAction)  を参照) までの実行スタックにあるすべてのメソッドが、システムクラスローダーまたはその上位オブジェクトの 1 つを使って定義されたクラスのメソッドである
java.security.AllPermission を使って checkPermission を呼び出したときに、結果が SecurityException ではない 
 
getSystemClassLoader, 
checkPermission@Deprecated protected Class<?> currentLoadedClass()
checkPermission の呼び出しを使用することをお勧めします。
ClassLoader.getSystemClassLoader() により返されるシステムクラスローダーとも、その上位オブジェクトのどれとも等しくないクラスローダーです。
 
このメソッドは、次の 3 つの場合に null コードを返します。
AccessController.doPrivileged(java.security.PrivilegedAction)  を参照) までの実行スタックにあるすべてのメソッドが、システムクラスローダーまたはその上位オブジェクトの 1 つを使って定義されたクラスのメソッドである
java.security.AllPermission を使って checkPermission を呼び出したときに、結果が SecurityException ではない 
 
getSystemClassLoader, 
checkPermission@Deprecated protected int classDepth(String name)
checkPermission の呼び出しを使用することをお勧めします。
name - 検索するクラスの完全指定の名前
-1@Deprecated protected int classLoaderDepth()
checkPermission の呼び出しを使用することをお勧めします。
ClassLoader.getSystemClassLoader() により返されるシステムクラスローダーとも、その上位オブジェクトのどれとも等しくないクラスローダーです。
 このメソッドは、次の場合に -1 を返します。
AccessController.doPrivileged(java.security.PrivilegedAction)  を参照) までの実行スタックにあるすべてのメソッドが、システムクラスローダーまたはその上位オブジェクトの 1 つを使って定義されたクラスのメソッドである
java.security.AllPermission を使って checkPermission を呼び出したときに、結果が SecurityException ではない 
 
getSystemClassLoader, 
checkPermission@Deprecated protected boolean inClass(String name)
checkPermission の呼び出しを使用することをお勧めします。
name - クラスの完全指定の名前
true、ない場合は false@Deprecated protected boolean inClassLoader()
checkPermission の呼び出しを使用することをお勧めします。
currentClassLoader の呼び出しの戻り値が null でない場合は truecurrentClassLoaderpublic Object getSecurityContext()
checkConnect メソッドや、2 つの引数を取る checkRead メソッドなどで使います。これらのメソッドが必要なのは、信頼できるメソッドが、別のメソッドの代わりにファイルを読み込んだり、ソケットをオープンしたりするために呼び出されるからです。信頼できるメソッドは、ほかの (おそらくは信頼できない) メソッドがその操作を自分で行うことを許可されているかどうかを、判定する必要があります。  このメソッドのデフォルトの実装は、AccessControlContext オブジェクトを返します。
checkConnect, 
checkRead, 
AccessControlContextpublic void checkPermission(Permission perm)
SecurityException をスローします。
 
このメソッドは、指定されたアクセス権で AccessController.checkPermission を呼び出します。
perm - 要求されたアクセス権
SecurityException - 現在のセキュリティポリシーによってアクセスが拒否された場合
NullPointerException - アクセス権の引数が null の場合
public void checkPermission(Permission perm,
                            Object context)
SecurityException をスローします。context は、直前の getSecurityContext 呼び出しによって返されたセキュリティーコンテキストである必要があります。 アクセス制御の決定は、このセキュリティーコンテキストに対して設定されているセキュリティーポリシーに基づいて行われます。
 
context が AccessControlContext のインスタンスである場合、指定されたアクセス権で AccessControlContext.checkPermission メソッドが呼び出されます。
 
context が AccessControlContext のインスタンスでない場合は、SecurityException がスローされます。
perm - 指定されたアクセス権context - システム依存のセキュリティコンテキスト
SecurityException - 指定されたセキュリティコンテキストが AccessControlContext のインスタンスでない (たとえば null である) か、あるいは指定されたアクセス権が示すリソースへのアクセスを拒否された場合
NullPointerException - アクセス権の引数が null の場合getSecurityContext(), 
AccessControlContext.checkPermission(java.security.Permission)public void checkCreateClassLoader()
SecurityException をスローします。
 
このメソッドは、アクセス権 RuntimePermission("createClassLoader") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkCreateClassLoader が呼び出されるようにしてください。
SecurityException - 呼び出し側のスレッドが、新しいクラスローダを作成できるアクセス権を持たない場合ClassLoader.ClassLoader(), 
checkPermissionpublic void checkAccess(Thread t)
SecurityException をスローします。
 
このメソッドは、Thread クラスの stop、 suspend、esume、setPriority、setName、setDaemon の各メソッドを呼び出すことによって、現在のセキュリティマネージャに対して呼び出されます。
 
スレッドの引数がシステムスレッド (親が null であるスレッドグループに属するスレッド) の場合、このメソッドは RuntimePermission("modifyThread") アクセス権で checkPermission を呼び出します。スレッドの引数がシステムスレッドでない場合、このメソッドは何もしないで復帰します。
 
より厳しいポリシーが必要なアプリケーションでは、このメソッドをオーバーライドする必要があります。このメソッドをオーバーライドする場合は、オーバーライド後のメソッドでは、呼び出し元のスレッドが RuntimePermission("modifyThread") アクセス権を持つかどうかをチェックして、持っている場合には何もせずに終了するようにします。これは、そのアクセス権を与えられたコード (JDK 自体など) がどんなスレッドでも扱えるようにするためです。
 
このメソッドをオーバーライドする場合は、オーバーライド後のメソッドの最初のステートメントで super.checkAccess メソッドを呼び出すか、同様のセキュリティーチェックを行う必要があります。
t - チェック対象のスレッド
SecurityException - 呼び出し側スレッドに、このスレッドを変更するのに必要なアクセス権がない場合
NullPointerException - スレッドの引数が null の場合resume, 
setDaemon, 
setName, 
setPriority, 
stop, 
suspend, 
checkPermissionpublic void checkAccess(ThreadGroup g)
SecurityException をスローします。
 
このメソッドは、子スレッドまたは子スレッドグループが新しく作成されたときに、ThreadGroup クラスの setDaemon、setMaxPriority、stop、suspend、resume、destroy の各メソッドによって、現在のセキュリティマネージャに対して呼び出されます。
 
スレッドグループの引数がシステムスレッドグループ (親が null) の場合、このメソッドは、RuntimePermission("modifyThreadGroup") アクセス権で checkPermission を呼び出します。スレッドグループの引数がシステムスレッドグループでない場合、このメソッドは何もしないで復帰します。
 
より厳しいポリシーが必要なアプリケーションでは、このメソッドをオーバーライドする必要があります。このメソッドをオーバーライドする場合、オーバーライド側のメソッドは、呼び出し側スレッドが RuntimePermission("modifyThreadGroup") アクセス権を持つかどうかも確認する必要があります。 アクセス権を持っている場合、このメソッドが何もせずに復帰するようにしてください。これは、そのアクセス権を与えられたコード (JDK 自体など) がどんなスレッドでも扱えるようにするためです。
 
このメソッドをオーバーライドする場合は、オーバーライド後のメソッドの最初のステートメントで super.checkAccess メソッドを呼び出すか、同様のセキュリティーチェックを行う必要があります。
g - チェック対象のスレッドグループ
SecurityException - 呼び出し側スレッドに、このスレッドグループを変更するのに必要なアクセス権がない場合
NullPointerException - スレッドグループの引数が null の場合destroy, 
resume, 
setDaemon, 
setMaxPriority, 
stop, 
suspend, 
checkPermissionpublic void checkExit(int status)
SecurityException をスローします。
 
このメソッドは、Runtime クラスの exit メソッドによって、現在のセキュリティーマネージャーに対して呼び出されます。ステータスコード 0 は成功を表し、その他の値は各種のエラーを表します。
 
このメソッドは、アクセス権 RuntimePermission("exitVM."+status) を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkExit が呼び出されるようにしてください。
status - 終了のステータス
SecurityException - 指定されたステータスで Java Virtual Machine を停止させるアクセス権が、呼び出し側スレッドにない場合exit, 
checkPermissionpublic void checkExec(String cmd)
SecurityException をスローします。
 
このメソッドは、Runtime クラスの exec メソッドによって、現在のセキュリティマネージャに対して呼び出されます。
 
このメソッドは、cmd が絶対パスの場合はアクセス権 FilePermission(cmd,"execute") を指定して checkPermission を呼び出し、そうでない場合は FilePermission("<<ALL FILES>>","execute") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkExec が呼び出されるようにしてください。
cmd - 指定されたシステムコマンド
SecurityException - 呼び出し側スレッドに、サブプロセスを作成するアクセス権がない場合
NullPointerException - cmd 引数が null の場合Runtime.exec(java.lang.String), 
Runtime.exec(java.lang.String, java.lang.String[]), 
Runtime.exec(java.lang.String[]), 
Runtime.exec(java.lang.String[], java.lang.String[]), 
checkPermissionpublic void checkLink(String lib)
SecurityException をスローします。引数には、ライブラリ名だけを指定するか、絶対パスのファイル名を指定します。
 
このメソッドは、Runtime クラスの load メソッドと loadLibrary メソッドによって、現在のセキュリティマネージャに対して呼び出されます。
 
このメソッドは、アクセス権 RuntimePermission("loadLibrary."+lib) を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkLink が呼び出されるようにしてください。
lib - ライブラリの名前
SecurityException - 呼び出し側スレッドに、ライブラリを動的にリンクするアクセス権がない場合
NullPointerException - lib 引数が null の場合Runtime.load(java.lang.String), 
Runtime.loadLibrary(java.lang.String), 
checkPermissionpublic void checkRead(FileDescriptor fd)
SecurityException をスローします。
 
このメソッドは、アクセス権 RuntimePermission("readFileDescriptor") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkRead が呼び出されるようにしてください。
fd - システム依存のファイル記述子
SecurityException - 呼び出し側スレッドに、指定されたファイル記述子へのアクセス権がない場合
NullPointerException - ファイル記述子の引数が null の場合FileDescriptor, 
checkPermissionpublic void checkRead(String file)
SecurityException をスローします。
 
このメソッドは、アクセス権 FilePermission(file,"read") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkRead が呼び出されるようにしてください。
file - システム依存のファイル名
SecurityException - 呼び出し側スレッドに、指定されたファイルへのアクセス権がない場合
NullPointerException - file 引数が null の場合checkPermission
public void checkRead(String file,
                      Object context)
SecurityException をスローします。コンテキストは、以前の getSecurityContext 呼び出しで返されたセキュリティーコンテキストである必要があります。  context が AccessControlContext のインスタンスである場合は、FilePermission(file,"read") アクセス権を指定して AccessControlContext.checkPermission メソッドが呼び出されます。 
 context が AccessControlContext のインスタンスでない場合は、SecurityException がスローされます。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkRead が呼び出されるようにしてください。
file - システムに依存するファイル名context - システム依存のセキュリティコンテキスト
SecurityException - 指定されたセキュリティコンテキストが AccessControlContext のインスタンスでない (たとえば null である) か、あるいは指定されたファイルの読み込み権がない場合
NullPointerException - file 引数が null の場合getSecurityContext(), 
AccessControlContext.checkPermission(java.security.Permission)public void checkWrite(FileDescriptor fd)
SecurityException をスローします。
 
このメソッドは、アクセス権 RuntimePermission("writeFileDescriptor") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkWrite が呼び出されるようにしてください。
fd - システム依存のファイル記述子
SecurityException - 呼び出し側スレッドに、指定されたファイル記述子へのアクセス権がない場合
NullPointerException - ファイル記述子の引数が null の場合FileDescriptor, 
checkPermissionpublic void checkWrite(String file)
SecurityException をスローします。
 
このメソッドは、アクセス権 FilePermission(file,"write") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkWrite が呼び出されるようにしてください。
file - システムに依存するファイル名
SecurityException - 呼び出し側スレッドに、指定されたファイルへのアクセス権がない場合
NullPointerException - file 引数が null の場合checkPermissionpublic void checkDelete(String file)
SecurityException をスローします。
 
このメソッドは、File クラスの delete メソッドによって、現在のセキュリティマネージャに対して呼び出されます。
 
このメソッドは、アクセス権 FilePermission(file,"delete") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkDelete が呼び出されるようにしてください。
file - システムに依存するファイル名
SecurityException - 呼び出し側スレッドに、指定されたファイルを削除するアクセス権がない場合
NullPointerException - file 引数が null の場合File.delete(), 
checkPermission
public void checkConnect(String host,
                         int port)
SecurityException をスローします。
 
ポート番号 -1 は、指定されたホスト名の IP アドレスを、呼び出し側のメソッドが決定しようとしていることを表します。
 
ポート番号が -1 でない場合、このメソッドはアクセス権 SocketPermission(host+":"+port,"connect") を指定して checkPermission メソッドを呼び出します。ポートが -1 である場合、このメソッドはアクセス権 SocketPermission(host,"resolve") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkConnect が呼び出されるようにしてください。
host - 接続先のホスト名ポートport - 接続先のプロトコルポート
SecurityException - 呼び出し側スレッドに、指定された host および port へのソケット接続をオープンするためのアクセス権がない場合
NullPointerException - host 引数が null の場合checkPermission
public void checkConnect(String host,
                         int port,
                         Object context)
SecurityException をスローします。
 
ポート番号 -1 は、指定されたホスト名の IP アドレスを、呼び出し側のメソッドが決定しようとしていることを表します。 
 context が AccessControlContext のインスタンスでない場合は、SecurityException がスローされます。
 
そうでない場合は、ポート番号を確認します。ポート番号が -1 でない場合は、アクセス権 SocketPermission(host+":"+port,"connect") を指定して context の checkPermission メソッドが呼び出されます。ポートが -1 である場合は、アクセス権 SocketPermission(host,"resolve") を指定して context の checkPermission メソッドが呼び出されます。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkConnect が呼び出されるようにしてください。
host - 接続先のホスト名ポートport - 接続先のプロトコルポートcontext - システム依存のセキュリティコンテキスト
SecurityException - 指定されたセキュリティコンテキストが AccessControlContext のインスタンスでない (たとえば null である) か、あるいは指定された host および port へのソケット接続をオープンするためのアクセス権がない場合
NullPointerException - host 引数が null の場合getSecurityContext(), 
AccessControlContext.checkPermission(java.security.Permission)public void checkListen(int port)
SecurityException をスローします。
 
ポート番号が 0 でない場合、このメソッドはアクセス権 SocketPermission("localhost:"+port,"listen") を指定して checkPermission メソッドを呼び出します。ポートが 0 である場合、このメソッドはアクセス権 SocketPermission("localhost:1024-","listen") を指定して checkPermission メソッドを呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkListen が呼び出されるようにしてください。
port - ローカルポート
SecurityException - 呼び出し側スレッドに、指定されたポートで待機するためのアクセス権がない場合checkPermission
public void checkAccept(String host,
                        int port)
SecurityException をスローします。
 
このメソッドは、ServerSocket クラスの accept メソッドによって、現在のセキュリティマネージャに対して呼び出されます。
 
このメソッドは、アクセス権 SocketPermission(host+":"+port,"accept") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkAccept が呼び出されるようにしてください。
host - ソケット接続のホスト番号port - ソケット接続のポート番号
SecurityException - 呼び出し側スレッドに、接続を受け入れるためのアクセス権がない場合
NullPointerException - host 引数が null の場合ServerSocket.accept(), 
checkPermissionpublic void checkMulticast(InetAddress maddr)
SecurityException をスローします。
 
このメソッドは、アクセス権 java.net.SocketPermission(maddr.getHostAddress(), "accept,connect") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkMulticast が呼び出されるようにしてください。
maddr - 使用するインターネットグループのアドレス
SecurityException - 呼び出し側スレッドに、IP マルチキャスト (join/leave/send/receive) の使用が許可されていない場合
NullPointerException - アドレスの引数が null の場合checkPermission
@Deprecated
public void checkMulticast(InetAddress maddr,
                                      byte ttl)
SecurityException をスローします。
 
このメソッドは、アクセス権 java.net.SocketPermission(maddr.getHostAddress(), "accept,connect") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkMulticast が呼び出されるようにしてください。
maddr - 使用するインターネットグループのアドレスttl - 使用する値がマルチキャスト送信される場合、その値。注:この特定の実装は ttl パラメータを使用しない
SecurityException - 呼び出し側スレッドに、IP マルチキャスト (join/leave/send/receive) の使用が許可されていない場合
NullPointerException - アドレスの引数が null の場合checkPermissionpublic void checkPropertiesAccess()
SecurityException をスローします。
 
このメソッドは、System クラスの getProperties および setProperties メソッドによって使用されます。
 
このメソッドは、アクセス権 PropertyPermission("*", "read,write") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkPropertiesAccess が呼び出されるようにしてください。
 
SecurityException - 呼び出し側スレッドに、システムプロパティに対するアクセスまたは変更を行うためのアクセス権がない場合System.getProperties(), 
System.setProperties(java.util.Properties), 
checkPermissionpublic void checkPropertyAccess(String key)
key で指定されたシステムプロパティへのアクセスが、呼び出し側スレッドに許可されていない場合に、SecurityException をスローします。
 
このメソッドは、System クラスの getProperty メソッドによって使用されます。
 
このメソッドは、アクセス権 PropertyPermission(key, "read") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkPropertiesAccess が呼び出されるようにしてください。
key - システムプロパティのキー
SecurityException - 呼び出し側スレッドに、指定されたシステムプロパティへのアクセス権がない場合
NullPointerException - key 引数が null の場合
IllegalArgumentException - key が空の場合System.getProperty(java.lang.String), 
checkPermissionpublic boolean checkTopLevelWindow(Object window)
window 引数で指定されたトップレベルのウィンドウを表示するための信頼が呼び出し側スレッドにない場合に、false を返します。この場合でも、呼び出し側スレッドはウィンドウを表示できますが、ウィンドウにはなんらかの警告が表示されます。このメソッドが true を返した場合は、特に制限なくウィンドウを表示できます。
 
信頼できるウィンドウと信頼できないウィンドウの詳細は、Window クラスを参照してください。
 
このメソッドは、アクセス権 AWTPermission("showWindowWithoutWarningBanner") を指定して checkPermission を呼び出します。SecurityException がスローされなければ true が返され、そうでない場合は false が返されます。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば false をスローする位置で super.checkTopLevelWindow が呼び出されるようにしてください。これにより、super.checkTopLevelWindow の値が返されます。
window - 作成される新しいウィンドウ
true、そうでない場合は false
NullPointerException - window 引数が null の場合Window, 
checkPermissionpublic void checkPrintJobAccess()
SecurityException をスローします。
 
このメソッドは、アクセス権 RuntimePermission("queuePrintJob") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkPrintJobAccess が呼び出されるようにしてください。
 
SecurityException - 呼び出し側スレッドに、印刷ジョブ要求を開始するためのアクセス権がない場合checkPermissionpublic void checkSystemClipboardAccess()
SecurityException をスローします。
 
このメソッドは、アクセス権 AWTPermission("accessClipboard") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkSystemClipboardAccess が呼び出されるようにしてください。
SecurityException - 呼び出し側スレッドに、システムクリップボードへのアクセス権がない場合checkPermissionpublic void checkAwtEventQueueAccess()
SecurityException をスローします。
 
このメソッドは、アクセス権 AWTPermission("accessEventQueue") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkAwtEventQueueAccess が呼び出されるようにしてください。
SecurityException - 呼び出し側スレッドに、AWT イベントキューへのアクセス権がない場合checkPermissionpublic void checkPackageAccess(String pkg)
SecurityException をスローします。
 
このメソッドはクラスローダの loadClass メソッドによって使用されます。
 
このメソッドは、最初に java.security.Security.getProperty("package.access") を呼び出してコンマ区切り形式のリストを取得することにより、制限付きパッケージのリストを取得します。 次に、制限付きパッケージの中に pkg で始まるパッケージまたは pkg に一致するパッケージがあるかどうかを判定します。該当する場合には、checkPermission が RuntimePermission("accessClassInPackage."+pkg) アクセス権で呼び出されます。
 
このメソッドをオーバーライドする場合は、オーバーライドされたメソッドの 1 行目で、super.checkPackageAccess への呼び出しを行う必要があります。
pkg - パッケージ名
SecurityException - 呼び出し側スレッドに、指定されたパッケージへのアクセス権がない場合
NullPointerException - パッケージ名の引数が null の場合loadClass, 
getProperty, 
checkPermissionpublic void checkPackageDefinition(String pkg)
SecurityException をスローします。
 
このメソッドは、一部のクラスローダの loadClass メソッドが使います。
 
このメソッドは、最初に java.security.Security.getProperty("package.definition") を呼び出してコンマ区切り形式のリストを取得することにより、制限付きパッケージのリストを取得します。 次に、制限付きパッケージの中に pkg で始まるパッケージまたは pkg に一致するパッケージがあるかどうかを判定します。該当する場合には、checkPermission が RuntimePermission("defineClassInPackage."+pkg) アクセス権で呼び出されます。
 
このメソッドをオーバーライドする場合は、オーバーライドされたメソッドの 1 行目で、super.checkPackageDefinition への呼び出しを行う必要があります。
pkg - パッケージ名
SecurityException - 呼び出し側スレッドに、指定されたパッケージ中のクラスを定義するためのアクセス権がない場合ClassLoader.loadClass(java.lang.String, boolean), 
getProperty, 
checkPermissionpublic void checkSetFactory()
ServerSocket または Socket が使用するソケットファクトリ、または URL が使用するストリームハンドラファクトリを設定することが呼び出し側スレッドに許可されていない場合に、SecurityException をスローします。
 
このメソッドは、アクセス権 RuntimePermission("setFactory") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkSetFactory が呼び出されるようにしてください。
 
SecurityException - 呼び出し側スレッドに、ソケットファクトリ、またはストリームハンドラファクトリを指定するためのアクセス権がない場合setSocketFactory, 
setSocketImplFactory, 
setURLStreamHandlerFactory, 
checkPermission
public void checkMemberAccess(Class<?> clazz,
                              int which)
SecurityException をスローします。
 
デフォルトのポリシーは PUBLIC メンバーへのアクセスおよび、呼び出し元と同じクラスローダを持つクラスへのアクセスを許可します。それ以外のクラスへのアクセスの場合、このメソッドはアクセス権 RuntimePermission("accessDeclaredMembers") を指定して checkPermission を呼び出します。
 
このメソッドをオーバーライドした場合、super.checkMemberAccess を呼び出すことはできません。これは、checkMemberAccess のデフォルトの実装が、スタックの深さ 4 にあるチェック進行中のコードに依存するためです。
clazz - リフレクションが実行されるクラスwhich - アクセスのタイプ。PUBLIC または DECLARED
SecurityException - 呼び出し側にメンバへのアクセス権がない場合
NullPointerException - clazz 引数が null の場合Member, 
checkPermissionpublic void checkSecurityAccess(String target)
要求されたアクセス権を許可する場合、このメソッドは何もしないで復帰します。拒否する場合は、SecurityException がスローされます。
 このメソッドは、指定されたアクセス権ターゲット名の SecurityPermission オブジェクトを生成し、次に、そのアクセス権を指定して checkPermission を呼び出します。
 
 指定できるアクセス権ターゲット名のリストについては、SecurityPermission
 このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で super.checkSecurityAccess が呼び出されるようにしてください。
target - SecurityPermission のターゲット名
SecurityException - 呼び出し側スレッドに、要求されたアクセスに必要なアクセス権がない場合
NullPointerException - target が null の場合
IllegalArgumentException - target が空の場合checkPermissionpublic ThreadGroup getThreadGroup()
ThreadGroup| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。