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