クラスSecureClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
- 直系の既知のサブクラス:
URLClassLoader
public class SecureClassLoader extends ClassLoader
このクラスは、
ClassLoaderを拡張し、関連するコード・ソースおよび権限でクラスを定義するための追加サポートを提供します。- APIのノート:
- セキュリティ・マネージャがサポートされなくなったため、リソースへのアクセスの制御に権限を使用できません。
- 導入されたバージョン:
- 1.2
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protected親としてのシステム・クラス・ローダーを使用して、新しいSecureClassLoaderを作成します。protectedSecureClassLoader(ClassLoader parent) 指定された親クラス・ローダーを委任に使用して、新しいSecureClassLoaderを作成します。protectedSecureClassLoader(String name, ClassLoader parent) 指定された名前の新しいSecureClassLoaderを作成し、指定された親クラス・ローダーを使用して委任します。 -
メソッドのサマリー
修飾子と型メソッド説明protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs) オプションのCodeSourceを使用して、バイトの配列をクラスClassのインスタンスに変換します。protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs) オプションのCodeSourceを使って、ByteBufferをクラスClassのインスタンスに変換します。protected PermissionCollectiongetPermissions(CodeSource codesource) 指定されたCodeSourceオブジェクトのアクセス権を返します。クラスで宣言されたメソッド ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners修飾子と型メソッド説明voidこのクラス・ローダーのデフォルトのアサーション・ステータスをfalseに設定し、クラス・ローダーに関連付けられたパッケージ・デフォルトまたはクラス・アサーション・ステータス設定を破棄します。protected final Class<?> defineClass(byte[] b, int off, int len) 非推奨。protected final Class<?> defineClass(String name, byte[] b, int off, int len) バイトの配列をクラスClassのインスタンスに変換します。protected final Class<?> defineClass(String name, byte[] b, int off, int len, ProtectionDomain protectionDomain) 指定されたProtectionDomainを使用して、バイトの配列をクラスClassのインスタンスに変換します。protected final Class<?> defineClass(String name, ByteBuffer b, ProtectionDomain protectionDomain) 指定されたProtectionDomainを使用して、ByteBufferをクラスClassのインスタンスに変換します。protected PackagedefinePackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) このClassLoaderにnameでパッケージを定義します。protected Class<?> 指定されたバイナリ名を持つクラスを探します。protected Class<?> このクラス・ローダーに定義されているモジュール内で、指定された「バイナリ名」を持つクラスを検索します。protected StringfindLibrary(String libname) ネイティブ・ライブラリの絶対パス名を返します。protected final Class<?> findLoadedClass(String name) protected URLfindResource(String name) 指定された名前を持つリソースを検索します。protected URLfindResource(String moduleName, String name) このクラス・ローダーに定義されているモジュール内のリソースへのURLを返します。protected Enumeration<URL> findResources(String name) 指定された名前を持つすべてのリソースを表すURLオブジェクトの列挙を返します。protected final Class<?> findSystemClass(String name) 指定されたバイナリ名を持つクラスを探して、必要に応じてロードします。protected ObjectgetClassLoadingLock(String className) クラス・ロード操作用のロック・オブジェクトを返します。final PackagegetDefinedPackage(String name) このクラス・ローダーによって定義された、指定されたnameのPackageを返します。final Package[]このクラス・ローダーによって定義されたすべてのPackageを返します。getName()このクラス・ローダーの名前を返すか、このクラス・ローダーの名前が指定されていない場合はnullを返します。protected PackagegetPackage(String name) 非推奨。複数のクラス・ローダーが互いに委譲して同じパッケージ名を持つクラスを定義し、そのようなローダーの1つがgetPackageのルックアップ動作に依存して親ローダーからPackageを返す場合、Packageによって公開されるプロパティは期待どおりにならない場合があります残りのプログラム。protected Package[]このクラス・ローダーとその祖先によって定義されたすべてのPackageを返します。final ClassLoader委譲のための親クラス・ローダーを返します。static ClassLoaderプラットフォーム・クラス・ローダーを返します。getResource(String name) 指定された名前を持つリソースを検索します。getResourceAsStream(String name) 指定されたリソースを読み込む入力ストリームを返します。getResources(String name) 指定された名前を持つすべてのリソースを検索します。static ClassLoaderシステム・クラス・ローダーを返します。static URLgetSystemResource(String name) クラスをロードするために使用される検索パスから、指定された名前のリソースを探します。static InputStreamクラスをロードするのに使用される検索パスから、指定された名前のリソースを、読込み用にオープンします。static Enumeration<URL> getSystemResources(String name) クラスをロードするために使用される検索パスから、指定された名前のすべてのリソースを探します。final Moduleこのクラス・ローダーの名前のないModuleを返します。final booleanこのクラス・ローダーが「並列対応」、それ以外の場合はfalseとして登録されている場合はtrueを返します。Class<?> 指定されたバイナリ名を持つクラスをロードします。protected Class<?> 指定されたバイナリ名を持つクラスをロードします。protected static boolean呼び出し元を「並列対応」として登録します。protected final voidresolveClass(Class<?> c) 指定されたクラスをリンクします。指定された名前を持つすべてのリソースのURLである要素を持つストリームを返します。voidsetClassAssertionStatus(String className, boolean enabled) このクラス・ローダーの指定されたトップレベル・クラスおよびそこに含まれるネストされたクラス内に対して、目的のアサーション・ステータスを設定します。voidsetDefaultAssertionStatus(boolean enabled) このクラス・ローダーのデフォルトのアサーション・ステータスを設定します。voidsetPackageAssertionStatus(String packageName, boolean enabled) 指定されたパッケージ・デフォルトのアサーション・ステータスを設定します。protected final voidsetSigners(Class<?> c, Object[] signers) クラスの署名者を設定します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
SecureClassLoader
protected SecureClassLoader(ClassLoader parent) 指定された親クラス・ローダーを委任に使用して、新しいSecureClassLoaderを作成します。- APIのノート:
parentがnull(ブートストラップ・クラス・ローダー用)として指定されている場合、すべてのプラットフォーム・クラスが表示される保証はありません。 ブートストラップ・クラス・ローダーおよびその他の組込みクラス・ローダーの詳細は、「ランタイム組込みクラス・ローダー」を参照してください。- パラメータ:
parent- 親ClassLoader。ブートストラップ・クラス・ローダーのnullにできます。
-
SecureClassLoader
protected SecureClassLoader()親としてのシステム・クラス・ローダーを使用して、新しいSecureClassLoaderを作成します。 -
SecureClassLoader
protected SecureClassLoader(String name, ClassLoader parent) 指定された名前の新しいSecureClassLoaderを作成し、指定された親クラス・ローダーを使用して委任します。- APIのノート:
parentがnull(ブートストラップ・クラス・ローダー用)として指定されている場合、すべてのプラットフォーム・クラスが表示される保証はありません。 ブートストラップ・クラス・ローダーおよびその他の組込みクラス・ローダーの詳細は、「ランタイム組込みクラス・ローダー」を参照してください。- パラメータ:
name- クラス・ローダー名; 名前が付けられていない場合はnullparent- 親クラス・ローダー。ブートストラップ・クラス・ローダーのnullにできます- スロー:
IllegalArgumentException- 指定された名前が空の場合。- 導入されたバージョン:
- 9
-
-
メソッドの詳細
-
defineClass
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs) オプションのCodeSourceを使用して、バイトの配列をクラスClassのインスタンスに変換します。 最初にクラスを解決してからでなければ、クラスを使用することはできません。nullではないCodeSourceが提供される場合、ProtectionDomainは定義済みのクラスで構築され関連付けられます。
- パラメータ:
name- クラスの名前として期待するもの。不明な場合はnull。区切り文字には「/」ではなく「.」を使う。クラス名のあとの接尾辞「.class」は付けない。b- クラス・データを構成するbyte。off+len-1を介したoffの位置のバイトは、「Java Virtual Machine仕様」で定義されている有効なクラス・ファイルの形式である必要があります。off- クラス・データのb内での開始オフセットlen- クラス・データの長さcs- 関連したCodeSource。存在しない場合はnull- 戻り値:
- データから作成された
Classオブジェクトと、オプションのCodeSource。 - スロー:
ClassFormatError- データが有効なクラスを含まなかった場合IndexOutOfBoundsException-offまたはlenが負の値の場合、あるいはoff+lenがb.lengthより大きい場合。SecurityException- このクラスではなく、別の証明書のセットを使って署名されたクラスを含むパッケージにこのクラスを追加しようとする場合、またはクラス名が「java」で始まる場合。
-
defineClass
protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs) オプションのCodeSourceを使って、ByteBufferをクラスClassのインスタンスに変換します。 最初にクラスを解決してからでなければ、クラスを使用することはできません。nullではないCodeSourceが提供される場合、ProtectionDomainは定義済みのクラスで構築され関連付けられます。
- パラメータ:
name- クラスの名前として期待するもの。不明な場合はnull。区切り文字には「/」ではなく「.」を使う。クラス名のあとの接尾辞「.class」は付けない。b- クラス・データを構成するbyte。b.position()からb.position() + b.limit() -1までの位置のバイトは、「Java Virtual Machine仕様」で定義されている有効なクラス・ファイルの形式である必要があります。cs- 関連したCodeSource。存在しない場合はnull- 戻り値:
- データから作成された
Classオブジェクトと、オプションのCodeSource。 - スロー:
ClassFormatError- データが有効なクラスを含まなかった場合SecurityException- このクラスではなく、別の証明書のセットを使って署名されたクラスを含むパッケージにこのクラスを追加しようとする場合、またはクラス名が「java」で始まる場合。- 導入されたバージョン:
- 1.5
-
getPermissions
protected PermissionCollection getPermissions(CodeSource codesource) 指定されたCodeSourceオブジェクトのアクセス権を返します。このメソッドは、定義されたクラスのProtectionDomainを構築しているときに、CodeSourceを引数として取るdefineClassメソッドによって呼び出されます。
- パラメータ:
codesource- コード・ソース。- 戻り値:
- コード・ソースの権限。
-
defineClass(String, byte[], int, int)に置き換えられます