- 直系の既知のサブクラス:
RMISecurityManager
SecurityManagerクラスには、名前がcheckで始まるメソッドが多数あります。 これらのメソッドは、Javaライブラリ内の各種メソッドによって、セキュリティを損なう可能性のある操作を実行する前に呼び出されます。 このようなcheckメソッド呼出しの一般的な例を次に示します。
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkXXX(argument, . . . );
}
これにより、セキュリティ・マネージャには、例外をスローして操作の実行を回避する機会が与えられます。 セキュリティ・マネージャ・ルーチンは、操作が許可される場合は何も行わずに復帰します。操作が許可されない場合はSecurityExceptionをスローします。
セキュリティ・マネージャの設定
セキュリティ・マネージャを使用する環境は通常、起動時にセキュリティ・マネージャを設定します。 JDKの実装では、これを行うために、コマンド行でシステム・プロパティjava.security.managerをセキュリティ・マネージャのクラス名に設定します。 空のString ("")または特別なトークン"default"に設定して、デフォルトのjava.lang.SecurityManagerを使用することもできます。 クラス名を指定する場合、java.lang.SecurityManagerまたはパブリック・サブクラスであり、パブリックで引数のないコンストラクタを持つ必要があります。 クラスはjava.lang.SecurityManagerでない場合、「組込みシステム・クラス・ローダー」によってロードされます。 java.security.managerシステム・プロパティが設定されていない場合、デフォルト値はnullです。つまり、起動時にセキュリティ・マネージャは設定されません。
Javaの実行時でも、setSecurityManagerメソッドを呼び出すことで、セキュリティ・マネージャを動的に設定することも可能ですが、許可する必要はありません。 JDK実装で、java.security.managerシステム・プロパティを特殊なトークン"allow"に設定してJava仮想マシンを起動した場合、セキュリティ・マネージャは起動時に設定されませんが、動的に設定できます。 java.security.managerシステム・プロパティが設定されていないか、特殊なトークン"disallow"に設定されていない状態でJava仮想マシンを起動した場合、セキュリティ・マネージャは起動時に設定されず、動的に(setSecurityManagerメソッドがUnsupportedOperationExceptionをスロー)を設定できません。 最後に、java.security.managerシステム・プロパティがセキュリティ・マネージャのクラス名または空の文字列("")または特別なトークン"default"に設定されている場合、セキュリティ・マネージャは起動時に(前述のとおり)に設定され、続いて(または無効)動的(現在インストールされているセキュリティ・マネージャのポリシーに従う)に置換されます。 次の表に、java.security.managerシステム・プロパティの設定ごとのJDK実装の動作を示します:
| プロパティ値 | 起動時のSecurityManagerセット | System.set SecurityManager実行時の動作 |
|---|---|---|
| null | なし | UnsupportedOperationExceptionをスローします |
| 空の文字列("") | java.lang.SecurityManager |
現在インストールされているセキュリティ・マネージャによって許可されない場合は、SecurityExceptionを成功またはスロー |
| "default" | java.lang.SecurityManager |
現在インストールされているセキュリティ・マネージャによって許可されない場合は、SecurityExceptionを成功またはスロー |
| "disallow" | なし | UnsupportedOperationExceptionをスローします |
| "allow" | なし | 現在インストールされているセキュリティ・マネージャによって許可されない場合は、SecurityExceptionを成功またはスロー |
| クラス名 | 指定されたクラス | 現在インストールされているセキュリティ・マネージャによって許可されない場合は、SecurityExceptionを成功またはスロー |
現在のセキュリティ・マネージャは、getSecurityManagerメソッドによって返されます。
アクセス制限チェック
特殊メソッドcheckPermission(java.security.Permission)は、指定されたアクセス権によって示されるアクセス要求が許可されるか、拒否されるかを決定します。 デフォルトの実装では、次のメソッドが呼び出されます。
AccessController.checkPermission(perm);
要求されたアクセス権が許可される場合、checkPermissionは何もしないで復帰します。 許可されない場合は、SecurityExceptionがスローされます。
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というアクセス権もあります。 これは、すべての(あるいは多くの)アクセス権を要求する複数のタスクを実行する必要がある、システム管理者の作業を単純化するためのアクセス権です。
権限関連の情報については、「Java Development Kit (JDK)の権限」を参照してください。 このドキュメントには、各そのメソッドのデフォルトの実装が必要である各種のSecurityManager checkメソッドとpermission(s)をリストする表が含まれています。 また、アクセス権を必要とするメソッドの表も含まれています。また、そのような各メソッドについて、必要なアクセス許可を指示します。
- 導入されたバージョン:
- 1.0
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明voidcheckAccept(String host, int port) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたホストとポート番号からのソケット接続を受け取ることが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドがスレッド引数の修正を許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが、スレッド・グループ引数の修正を許可されていない場合に、SecurityExceptionをスローします。voidcheckConnect(String host, int port) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたホストとポート番号へのソケット接続をオープンすることが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。voidcheckConnect(String host, int port, Object context) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたセキュリティ・コンテキストが、指定されたホストとポート番号へのソケット接続をオープンするアクセス権を持っていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが新しいクラス・ローダーの作成を許可されていない場合に、SecurityExceptionをスローします。voidcheckDelete(String file) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたファイルを削除することが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。サブプロセスの作成が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。voidcheckExit(int status) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたステータス・コードでJava仮想マシンを停止させる許可を、呼出し側のスレッドが持っていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数ファイルで指定されたライブラリ・コードへの動的リンクが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。voidcheckListen(int port) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたローカル・ポート番号で接続要求を待機することが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。voidcheckMulticast(InetAddress maddr) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。IPマルチキャスト(join/leave/send/receive)の使用が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。voidcheckMulticast(InetAddress maddr, byte ttl) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。voidcheckPackageAccess(String pkg) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが指定されたパッケージへのアクセスを許可されていない場合は、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが指定されたパッケージ内のクラスを定義できない場合、SecurityExceptionをスローします。voidcheckPermission(Permission perm) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたアクセス権で要求したアクセスが、現在有効なセキュリティ・ポリシーに照らして許可されなかった場合に、SecurityExceptionをスローします。voidcheckPermission(Permission perm, Object context) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたセキュリティ・コンテキストが、指定されたアクセス権が示すリソースへのアクセスを拒否された場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。印刷ジョブ要求の開始が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。システム・プロパティのアクセスまたは変更が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。keyで指定されたシステム・プロパティへのアクセスが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたファイル記述子からの読取りが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数で指定されたファイルの読取りが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数で指定されたファイルを読み取る許可が、指定されたセキュリティ・コンテキストにない場合に、SecurityExceptionをスローします。voidcheckSecurityAccess(String target) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたアクセス権ターゲット名のアクセス権を許可するか、あるいは拒否するかを判定します。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ServerSocketまたはSocketが使用するソケット・ファクトリ、またはURLが使用するストリーム・ハンドラ・ファクトリを設定することが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたファイル記述子への書込みが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。voidcheckWrite(String file) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数で指定されたファイルへの書込みが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。protected Class<?>[]削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。現在の例外実行スタックをクラスの配列として返します。削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。現在の実行環境をカプセル化するオブジェクトを生成します。削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドを呼び出したときに作成される、任意の新しいスレッドのインスタンスを生成するための、スレッド・グループを返します。
-
コンストラクタの詳細
-
SecurityManager
public SecurityManager()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。新しいSecurityManagerを構築します。セキュリティ・マネージャがすでにインストールされている場合、このメソッドは最初にセキュリティ・マネージャの
checkPermissionメソッドを呼び出します。このとき、RuntimePermission("createSecurityManager")アクセス権を使用することにより、呼出し側のスレッドが新しいセキュリティ・マネージャを作成するアクセス権を確実に持つようにします。 その結果、SecurityExceptionがスローされることがあります。- スロー:
SecurityException- セキュリティ・マネージャがすでにあり、そのcheckPermissionメソッドが、新しいセキュリティ・マネージャの作成を許可しない場合。- 関連項目:
-
-
メソッドの詳細
-
getClassContext
protected Class<?>[] getClassContext()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。現在の例外実行スタックをクラスの配列として返します。配列の長さは、実行スタック上にあるメソッドの数になります。 インデックス
0の要素は現在メソッドを実行中のクラス、インデックス1の要素はそのメソッドの呼出しクラスとなります。- 戻り値:
- 実行スタック。
-
getSecurityContext
public Object getSecurityContext()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。現在の実行環境をカプセル化するオブジェクトを生成します。 このメソッドの実行結果は、3つの引数を取るcheckConnectメソッドや、2つの引数を取るcheckReadメソッドなどで使います。 これらのメソッドが必要なのは、信頼できるメソッドが、別のメソッドの代わりにファイルを読み込んだり、ソケットをオープンしたりするために呼び出されるからです。 信頼できるメソッドは、ほかの(おそらくは信頼できない)メソッドがその操作を自分で行うことを許可されているかどうかを、判定する必要があります。このメソッドのデフォルトの実装は、
AccessControlContextオブジェクトを返します。- 戻り値:
- あとでセキュリティ・チェックを行えるように、現在の実行環境の十分な情報をカプセル化した、実装依存のオブジェクト。
- 関連項目:
-
checkPermission
public void checkPermission(Permission perm) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたアクセス権で要求したアクセスが、現在有効なセキュリティ・ポリシーに照らして許可されなかった場合に、SecurityExceptionをスローします。このメソッドは、指定されたアクセス権で
AccessController.checkPermissionを呼び出します。- パラメータ:
perm- 要求されたアクセス権。- スロー:
SecurityException- 現在のセキュリティ・ポリシーによってアクセスが拒否された場合。NullPointerException- アクセス権の引数がnullの場合。- 導入されたバージョン:
- 1.2
-
checkPermission
public void checkPermission(Permission perm, Object context) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたセキュリティ・コンテキストが、指定されたアクセス権が示すリソースへのアクセスを拒否された場合に、SecurityExceptionをスローします。 contextは、直前のgetSecurityContext呼出しによって返されたセキュリティ・コンテキストである必要があります。アクセス制御の決定は、このセキュリティ・コンテキストに対して構成されているセキュリティ・ポリシーに基づいて行われます。contextがAccessControlContextのインスタンスである場合、AccessControlContext.checkPermissionメソッドが指定されたアクセス権で呼び出されます。contextがAccessControlContextのインスタンスでない場合は、SecurityExceptionがスローされます。- パラメータ:
perm- 指定されたアクセス権context- システム依存のセキュリティ・コンテキスト。- スロー:
SecurityException- 指定されたセキュリティ・コンテキストがAccessControlContextのインスタンスでない(たとえばnullである)か、あるいは指定されたアクセス権が示すリソースへのアクセスを拒否された場合。NullPointerException- アクセス権の引数がnullの場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
checkCreateClassLoader
public void checkCreateClassLoader()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが新しいクラス・ローダーの作成を許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
RuntimePermission("createClassLoader")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkCreateClassLoaderが呼び出されるようにしてください。- スロー:
SecurityException- 呼出し側のスレッドが、新しいクラス・ローダーを作成できるアクセス権を持たない場合。- 関連項目:
-
checkAccess
public void checkAccess(Thread t) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドがスレッド引数の修正を許可されていない場合に、SecurityExceptionをスローします。このメソッドは、クラス
ThreadのsetPriority、setNameおよびsetDaemonメソッドによって、現在のセキュリティ・マネージャに対して起動されます。スレッドの引数がシステム・スレッド(親が
nullであるスレッド・グループに属するスレッド)の場合、このメソッドはRuntimePermission("modifyThread")アクセス権でcheckPermissionを呼び出します。 スレッドの引数がシステム・スレッドでない場合、このメソッドは何もしないで復帰します。より厳しいポリシーが必要なアプリケーションでは、このメソッドをオーバーライドする必要があります。 このメソッドをオーバーライドする場合、オーバーライド側のメソッドは、呼出し側スレッドが
RuntimePermission("modifyThread")アクセス権を持つかどうかも確認し、その場合、何もせずに戻るようにしてください。 これは、そのアクセス権を与えられたコード(JDK自体など)がどんなスレッドでも扱えるようにするためです。このメソッドをオーバーライドする場合は、オーバーライドされたメソッドの1番目の文で
super.checkAccessを呼び出すか、オーバーライドされたメソッドに同等のセキュリティ・チェックを記述してください。- パラメータ:
t- チェック対象のスレッド。- スロー:
SecurityException- 呼出し側スレッドに、このスレッドを変更するのに必要なアクセス権がない場合。NullPointerException- スレッド引数がnullの場合。- 関連項目:
-
checkAccess
public void checkAccess(ThreadGroup g) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが、スレッド・グループ引数の修正を許可されていない場合に、SecurityExceptionをスローします。このメソッドは、新しい子スレッドまたは子スレッド・グループが作成されたときに現在のセキュリティ・マネージャに対して起動され、
ThreadGroupクラスのsetDaemonおよびsetMaxPriorityメソッドによって起動されます。スレッド・グループの引数がシステム・スレッド・グループ(親が
null)の場合、このメソッドは、RuntimePermission("modifyThreadGroup")アクセス権でcheckPermissionを呼び出します。 スレッド・グループの引数がシステム・スレッド・グループでない場合、このメソッドは何もしないで復帰します。より厳しいポリシーが必要なアプリケーションでは、このメソッドをオーバーライドする必要があります。 このメソッドをオーバーライドする場合、オーバーライド側のメソッドは、呼出し側スレッドが
RuntimePermission("modifyThreadGroup")アクセス権を持つかどうかも確認する必要があります。アクセス権を持っている場合、このメソッドが何もせずに復帰するようにしてください。 これは、そのアクセス権を与えられたコード(JDK自体など)がどんなスレッドでも扱えるようにするためです。このメソッドをオーバーライドする場合は、オーバーライドされたメソッドの1番目の文で
super.checkAccessを呼び出すか、オーバーライドされたメソッドに同等のセキュリティ・チェックを記述してください。- パラメータ:
g- チェック対象のスレッド・グループ。- スロー:
SecurityException- 呼出し側スレッドに、このスレッド・グループを変更するのに必要なアクセス権がない場合。NullPointerException- スレッド・グループの引数がnullの場合。- 関連項目:
-
checkExit
public void checkExit(int status) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたステータス・コードでJava仮想マシンを停止させる許可を、呼出し側のスレッドが持っていない場合に、SecurityExceptionをスローします。このメソッドは、
Runtimeクラスのexitメソッドによって、現在のセキュリティ・マネージャに対して呼び出されます。 ステータス・コード0は成功を表し、その他の値は各種のエラーを表します。このメソッドは、アクセス権
RuntimePermission("exitVM."+status)を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkExitが呼び出されるようにしてください。- パラメータ:
status- 終了のステータス。- スロー:
SecurityException- 指定されたステータスでJava仮想マシンを停止させるアクセス権が、呼出し側スレッドにない場合。- 関連項目:
-
checkExec
public void checkExec(String cmd) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。サブプロセスの作成が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、
Runtimeクラスのexecメソッドによって、現在のセキュリティ・マネージャに対して呼び出されます。このメソッドは、cmdが絶対パスの場合は
checkPermissionをFilePermission(cmd,"execute")アクセス権で呼び出し、それ以外の場合はcheckPermissionをFilePermission("<<ALL FILES>>","execute")で呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkExecが呼び出されるようにしてください。- パラメータ:
cmd- 指定されたシステム・コマンド。- スロー:
SecurityException- 呼出し側スレッドに、サブプロセスを作成するアクセス権がない場合。NullPointerException-cmd引数がnullの場合。- 関連項目:
-
checkLink
public void checkLink(String lib) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数ファイルで指定されたライブラリ・コードへの動的リンクが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。 引数には、ライブラリ名だけを指定するか、絶対パスのファイル名を指定します。このメソッドは、
RuntimeクラスのメソッドloadおよびloadLibraryによって、現在のセキュリティ・マネージャに対して呼び出されます。このメソッドは、アクセス権
RuntimePermission("loadLibrary."+lib)を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkLinkが呼び出されるようにしてください。- パラメータ:
lib- ライブラリの名前。- スロー:
SecurityException- 呼出し側スレッドに、ライブラリを動的にリンクするアクセス権がない場合。NullPointerException-lib引数がnullの場合。- 関連項目:
-
checkRead
public void checkRead(FileDescriptor fd) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたファイル記述子からの読取りが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
RuntimePermission("readFileDescriptor")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkReadが呼び出されるようにしてください。- パラメータ:
fd- システム依存のファイル記述子。- スロー:
SecurityException- 呼出し側スレッドに、指定されたファイル記述子へのアクセス権がない場合。NullPointerException- ファイル記述子の引数がnullの場合。- 関連項目:
-
checkRead
public void checkRead(String file) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数で指定されたファイルの読取りが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
FilePermission(file,"read")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkReadが呼び出されるようにしてください。- パラメータ:
file- システム依存のファイル名。- スロー:
SecurityException- 呼出し側スレッドに、指定されたファイルへのアクセス権がない場合。NullPointerException-file引数がnullの場合。- 関連項目:
-
checkRead
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数で指定されたファイルを読み取る許可が、指定されたセキュリティ・コンテキストにない場合に、SecurityExceptionをスローします。 コンテキストは、以前のgetSecurityContext呼出しで返されたセキュリティ・コンテキストである必要があります。contextがAccessControlContextのインスタンスである場合、AccessControlContext.checkPermissionメソッドがFilePermission(file,"read")で呼び出されます。contextがAccessControlContextのインスタンスでない場合は、SecurityExceptionがスローされます。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkReadが呼び出されるようにしてください。- パラメータ:
file- システムに依存するファイル名。context- システム依存のセキュリティ・コンテキスト。- スロー:
SecurityException- 指定されたセキュリティ・コンテキストがAccessControlContextのインスタンスでない(たとえばnullである)か、あるいは指定されたファイルの読込み権がない場合。NullPointerException-file引数がnullの場合。- 関連項目:
-
checkWrite
public void checkWrite(FileDescriptor fd) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたファイル記述子への書込みが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
RuntimePermission("writeFileDescriptor")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkWriteが呼び出されるようにしてください。- パラメータ:
fd- システム依存のファイル記述子。- スロー:
SecurityException- 呼出し側スレッドに、指定されたファイル記述子へのアクセス権がない場合。NullPointerException- ファイル記述子の引数がnullの場合。- 関連項目:
-
checkWrite
public void checkWrite(String file) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。文字列引数で指定されたファイルへの書込みが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
FilePermission(file,"write")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkWriteが呼び出されるようにしてください。- パラメータ:
file- システムに依存するファイル名。- スロー:
SecurityException- 呼出し側スレッドに、指定されたファイルへのアクセス権がない場合。NullPointerException-file引数がnullの場合。- 関連項目:
-
checkDelete
public void checkDelete(String file) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたファイルを削除することが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、
Fileクラスのdeleteメソッドによって、現在のセキュリティ・マネージャに対して呼び出されます。このメソッドは、アクセス権
FilePermission(file,"delete")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkDeleteが呼び出されるようにしてください。- パラメータ:
file- システムに依存するファイル名。- スロー:
SecurityException- 呼出し側スレッドに、指定されたファイルを削除するアクセス権がない場合。NullPointerException-file引数がnullの場合。- 関連項目:
-
checkConnect
public void checkConnect(String host, int port) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたホストとポート番号へのソケット接続をオープンすることが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。ポート番号
-1は、指定されたホスト名のIPアドレスを、呼出し側のメソッドが決定しようとしていることを表します。portが -1に等しくない場合、このメソッドは
checkPermissionをSocketPermission(host+":"+port,"connect")アクセス権で呼び出します。 ポートが -1に等しいときは、このメソッドがcheckPermissionをSocketPermission(host,"resolve")アクセス権で呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkConnectが呼び出されるようにしてください。- パラメータ:
host-接続先のホスト名ポート。port- 接続先のプロトコル・ポート。- スロー:
SecurityException- 呼出し側スレッドに、指定されたhostおよびportへのソケット接続をオープンするためのアクセス権がない場合。NullPointerException-host引数がnullの場合。- 関連項目:
-
checkConnect
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたセキュリティ・コンテキストが、指定されたホストとポート番号へのソケット接続をオープンするアクセス権を持っていない場合に、SecurityExceptionをスローします。ポート番号
-1は、指定されたホスト名のIPアドレスを、呼出し側のメソッドが決定しようとしていることを表します。contextがAccessControlContextのインスタンスでない場合は、SecurityExceptionがスローされます。そうでない場合は、ポート番号を確認します。 これが -1に等しい場合、
contextのcheckPermissionメソッドがSocketPermission(host+":"+port,"connect")アクセス権で呼び出されます。 portが -1に等しい場合、contextのcheckPermissionメソッドがSocketPermission(host,"resolve")アクセス権で呼び出されます。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkConnectが呼び出されるようにしてください。- パラメータ:
host-接続先のホスト名ポート。port- 接続先のプロトコル・ポート。context- システム依存のセキュリティ・コンテキスト。- スロー:
SecurityException- 指定されたセキュリティ・コンテキストがAccessControlContextのインスタンスでない(たとえばnullである)か、あるいは指定されたhostおよびportへのソケット接続をオープンするためのアクセス権がない場合。NullPointerException-host引数がnullの場合。- 関連項目:
-
checkListen
public void checkListen(int port) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたローカル・ポート番号で接続要求を待機することが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは
checkPermissionをSocketPermission("localhost:"+port,"listen")で呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkListenが呼び出されるようにしてください。- パラメータ:
port- ローカル・ポート。- スロー:
SecurityException- 呼出し側スレッドに、指定されたポートで待機するためのアクセス権がない場合。- 関連項目:
-
checkAccept
public void checkAccept(String host, int port) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたホストとポート番号からのソケット接続を受け取ることが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、
ServerSocketクラスのacceptメソッドによって、現在のセキュリティ・マネージャに対して呼び出されます。このメソッドは、アクセス権
SocketPermission(host+":"+port,"accept")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkAcceptが呼び出されるようにしてください。- パラメータ:
host- ソケット接続のホスト名。port- ソケット接続のポート番号。- スロー:
SecurityException- 呼出し側スレッドに、接続を受け入れるためのアクセス権がない場合。NullPointerException-host引数がnullの場合。- 関連項目:
-
checkMulticast
public void checkMulticast(InetAddress maddr) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。IPマルチキャスト(join/leave/send/receive)の使用が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
java.net.SocketPermission(maddr.getHostAddress(), "accept,connect")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkMulticastが呼び出されるようにしてください。- パラメータ:
maddr- 使用するインターネット・グループのアドレス。- スロー:
SecurityException- 呼出し側スレッドに、IPマルチキャスト(join/leave/send/receive)の使用が許可されていない場合。NullPointerException- アドレスの引数がnullの場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
checkMulticast
@Deprecated(since="1.4", forRemoval=true) public void checkMulticast(InetAddress maddr, byte ttl) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。IPマルチキャスト(join/leave/send/receive)の使用が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
java.net.SocketPermission(maddr.getHostAddress(), "accept,connect")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkMulticastが呼び出されるようにしてください。- パラメータ:
maddr- 使用するインターネット・グループのアドレス。ttl- 使用する値がマルチキャスト送信される場合、その値。 ノート: この特定の実装はttlパラメータを使用しない。- スロー:
SecurityException- 呼出し側スレッドに、IPマルチキャスト(join/leave/send/receive)の使用が許可されていない場合。NullPointerException- アドレスの引数がnullの場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
checkPropertiesAccess
public void checkPropertiesAccess()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。システム・プロパティのアクセスまたは変更が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは
SystemのgetPropertiesおよびsetPropertiesメソッドによって使用されます。このメソッドは、アクセス権
PropertyPermission("*", "read,write")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkPropertiesAccessが呼び出されるようにしてください。- スロー:
SecurityException- 呼出し側スレッドに、システム・プロパティに対するアクセスまたは変更を行うためのアクセス権がない場合。- 関連項目:
-
checkPropertyAccess
public void checkPropertyAccess(String key) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。keyで指定されたシステム・プロパティへのアクセスが、呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、
SystemクラスのgetPropertyメソッドによって使用されます。このメソッドは、アクセス権
PropertyPermission(key, "read")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkPropertyAccessが呼び出されるようにしてください。- パラメータ:
key- システム・プロパティのキー。- スロー:
SecurityException- 呼出し側スレッドに、指定されたシステム・プロパティへのアクセス権がない場合。NullPointerException-key引数がnullの場合。IllegalArgumentException-keyが空である場合。- 関連項目:
-
checkPrintJobAccess
public void checkPrintJobAccess()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。印刷ジョブ要求の開始が呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
RuntimePermission("queuePrintJob")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkPrintJobAccessが呼び出されるようにしてください。- スロー:
SecurityException- 呼出し側スレッドに、印刷ジョブ要求を開始するためのアクセス権がない場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
checkPackageAccess
public void checkPackageAccess(String pkg) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが指定されたパッケージへのアクセスを許可されていない場合は、SecurityExceptionをスローします。クラスのロード中、このメソッドは、クラス・ローダーの
loadClassメソッドおよびJava Virtual Machineによってコールされ、コール元がロードされるクラスのパッケージへのアクセスを許可されるようにできます。このメソッドは、指定されたパッケージが
package.accessセキュリティ・プロパティ内のいずれかのパッケージで始まるか等しいかをチェックします。 実装では、次に示すように、制限付きパッケージの追加リストに対してパッケージをチェックすることもできます。 パッケージが制限されている場合、checkPermission(Permission)はRuntimePermission("accessClassInPackage."+pkg)権限でコールされます。このメソッドをオーバーライドする場合は、オーバーライドされたメソッドの1行目で、
super.checkPackageAccessへの呼出しを行う必要があります。- 実装上のノート:
- この実装では、「プラットフォーム・クラス・ローダー」またはその祖先によってロードされるモジュールのすべての非エクスポート・パッケージも制限されます。 "エクスポートされていないパッケージ"は、すべてのモジュールにエクスポートされないパッケージを指します。 具体的には、含まれているモジュールによってまったくエクスポートされないパッケージ、または含まれているモジュールによって修飾された方法でエクスポートされるパッケージを指します。
- パラメータ:
pkg- パッケージ名。- スロー:
SecurityException- 呼出し側スレッドに、指定されたパッケージへのアクセス権がない場合。NullPointerException- パッケージ名の引数がnullの場合。- 関連項目:
-
checkPackageDefinition
public void checkPackageDefinition(String pkg) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。呼出し側スレッドが指定されたパッケージ内のクラスを定義できない場合、SecurityExceptionをスローします。このメソッドは、一部のクラス・ローダーの
loadClassメソッドによってコールされます。このメソッドは、指定されたパッケージが
package.definitionセキュリティ・プロパティ内のいずれかのパッケージで始まるか等しいかをチェックします。 実装では、次に示すように、制限付きパッケージの追加リストに対してパッケージをチェックすることもできます。 パッケージが制限されている場合、checkPermission(Permission)はRuntimePermission("defineClassInPackage."+pkg)権限でコールされます。このメソッドをオーバーライドする場合は、オーバーライドされたメソッドの1行目で、
super.checkPackageDefinitionへの呼出しを行う必要があります。- 実装上のノート:
- この実装では、「プラットフォーム・クラス・ローダー」またはその祖先によってロードされるモジュールのすべての非エクスポート・パッケージも制限されます。 "エクスポートされていないパッケージ"は、すべてのモジュールにエクスポートされないパッケージを指します。 具体的には、含まれているモジュールによってまったくエクスポートされないパッケージ、または含まれているモジュールによって修飾された方法でエクスポートされるパッケージを指します。
- パラメータ:
pkg- パッケージ名。- スロー:
SecurityException- 呼出し側スレッドに、指定されたパッケージ中のクラスを定義するためのアクセス権がない場合。NullPointerException- パッケージ名の引数がnullの場合。- 関連項目:
-
checkSetFactory
public void checkSetFactory()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ServerSocketまたはSocketが使用するソケット・ファクトリ、またはURLが使用するストリーム・ハンドラ・ファクトリを設定することが呼出し側スレッドに許可されていない場合に、SecurityExceptionをスローします。このメソッドは、アクセス権
RuntimePermission("setFactory")を指定してcheckPermissionを呼び出します。このメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkSetFactoryが呼び出されるようにしてください。- スロー:
SecurityException- 呼出し側スレッドに、ソケット・ファクトリ、またはストリーム・ハンドラ・ファクトリを指定するためのアクセス権がない場合。- 関連項目:
-
checkSecurityAccess
public void checkSecurityAccess(String target) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたアクセス権ターゲット名のアクセス権を許可するか、あるいは拒否するかを判定します。要求されたアクセス権を許可する場合、このメソッドは何もしないで復帰します。 拒否する場合は、SecurityExceptionがスローされます。
このメソッドは、指定されたアクセス権ターゲット名の
SecurityPermissionオブジェクトを生成し、次に、そのアクセス権を指定してcheckPermissionを呼び出します。指定できるアクセス権ターゲット名のリストについては、
のドキュメントを参照してください。SecurityPermissionこのメソッドをオーバーライドする場合は、オーバーライドされるメソッドが通常であれば例外をスローする位置で
super.checkSecurityAccessが呼び出されるようにしてください。- パラメータ:
target-SecurityPermissionのターゲット名。- スロー:
SecurityException- 呼出し側スレッドに、要求されたアクセスに必要なアクセス権がない場合。NullPointerException-targetがnullである場合。IllegalArgumentException-targetが空である場合。- 導入されたバージョン:
- 1.1
- 関連項目:
-
getThreadGroup
public ThreadGroup getThreadGroup()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このメソッドを呼び出したときに作成される、任意の新しいスレッドのインスタンスを生成するための、スレッド・グループを返します。 デフォルトでは、現在のスレッドのスレッド・グループを返します。 適切なスレッド・グループを返すには、特定のセキュリティ・マネージャでこのメソッドをオーバーライドしてください。- 戻り値:
- 新しいスレッドのインスタンスを生成するThreadGroup
- 導入されたバージョン:
- 1.1
- 関連項目:
-