public class SecureClassLoader extends ClassLoader
修飾子 | コンストラクタと説明 |
---|---|
protected |
SecureClassLoader()
委譲のためにデフォルトの親クラス・ローダーを使って、新規SecureClassLoaderを作成します。
|
protected |
SecureClassLoader(ClassLoader parent)
委譲のために指定された親クラス・ローダーを使って、新規SecureClassLoaderを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
protected Class<?> |
defineClass(String name, byte[] b, int off, int len, CodeSource cs)
バイトの配列を、オプションのCodeSourceを使用してClassクラスのインスタンスに変換します。
|
protected Class<?> |
defineClass(String name, ByteBuffer b, CodeSource cs)
ByteBuffer をクラスClass のインスタンス(およびオプションのCodeSource)に変換します。 |
protected PermissionCollection |
getPermissions(CodeSource codesource)
指定されたCodeSourceオブジェクトのアクセス権を返します。
|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
protected SecureClassLoader(ClassLoader parent)
セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャのcheckCreateClassLoader
メソッドを呼び出します。
parent
- 親のClassLoaderSecurityException
- セキュリティ・マネージャが存在し、そのcheckCreateClassLoader
メソッドがクラス・ローダーの作成を許可しない場合。SecurityManager.checkCreateClassLoader()
protected SecureClassLoader()
セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャのcheckCreateClassLoader
メソッドを呼び出します。
SecurityException
- セキュリティ・マネージャが存在し、そのcheckCreateClassLoader
メソッドがクラス・ローダーの作成を許可しない場合。SecurityManager.checkCreateClassLoader()
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
nullではないCodeSourceが提供される場合、ProtectionDomainは定義済みのクラスで構築され関連付けられます。
name
- クラスの名前として期待するもの。不明な場合はnull
。区切り文字には「/」ではなく「.」を使う。クラス名のあとの接尾辞「.class」は付けない。b
- クラス・データを構成するbyte。off
からoff+len-1
までの位置にあるbyteは、『Java(tm)仮想マシン仕様』で定義される有効なクラス・ファイルの形式を持つ。off
- クラス・データのb
内での開始オフセットlen
- クラス・データの長さcs
- 関連したCodeSource。存在しない場合はnull
Class
オブジェクトと、オプションのCodeSource。ClassFormatError
- データが有効なクラスを含まなかった場合IndexOutOfBoundsException
- off
またはlen
が負の値の場合、あるいはoff+len
がb.length
より大きい場合。SecurityException
- このクラスではなく、別の証明書のセットを使って署名されたクラスを含むパッケージにこのクラスを追加しようとする場合、またはクラス名が「java」で始まる場合。protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
ByteBuffer
をクラスClass
のインスタンス(およびオプションのCodeSource)に変換します。最初にクラスを解決してからでなければ、クラスを使用することはできません。
nullではないCodeSourceが提供される場合、ProtectionDomainは定義済みのクラスで構築され関連付けられます。
name
- クラスの名前として期待するもの。不明な場合はnull
。区切り文字には「/」ではなく「.」を使う。クラス名のあとの接尾辞「.class」は付けない。b
- クラス・データを構成するbyte。b.position()
からb.position()+b.limit() -1
までの位置にあるbyteは、『Java(tm)仮想マシン仕様』で定義される有効なクラス・ファイルの形式を持つ。cs
- 関連したCodeSource。存在しない場合はnull
Class
オブジェクトと、オプションのCodeSource。ClassFormatError
- データが有効なクラスを含まなかった場合SecurityException
- このクラスではなく、別の証明書のセットを使って署名されたクラスを含むパッケージにこのクラスを追加しようとする場合、またはクラス名が「java」で始まる場合。protected PermissionCollection getPermissions(CodeSource codesource)
このメソッドは、定義されたクラスのProtectionDomainを構築しているときに、CodeSourceを引数として取るdefineClassメソッドによって呼び出されます。
codesource
- コード・ソース。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.