java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
- 直系の既知のサブクラス:
URLClassLoader
public class SecureClassLoader extends ClassLoader
このクラスは、デフォルトでシステム・ポリシーによって抽出される関連したコード・ソースとアクセス権を持つクラスを定義するための追加サポートを使用して、ClassLoaderを拡張します。
- 導入されたバージョン:
- 1.2
-
コンストラクタのサマリー
修飾子コンストラクタ説明protected
委譲のためにデフォルトの親クラス・ローダーを使って、新規SecureClassLoaderを作成します。protected
SecureClassLoader(ClassLoader parent)
委譲のために指定された親クラス・ローダーを使って、新規SecureClassLoaderを作成します。protected
SecureClassLoader(String name, 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)
オプションのCodeSourceを使って、ByteBuffer
をクラスClass
のインスタンスに変換します。protected PermissionCollection
getPermissions(CodeSource codesource)
指定されたCodeSourceオブジェクトのアクセス権を返します。クラス java.lang.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
-
コンストラクタの詳細
-
SecureClassLoader
protected SecureClassLoader(ClassLoader parent)委譲のために指定された親クラス・ローダーを使って、新規SecureClassLoaderを作成します。セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャの
checkCreateClassLoader
メソッドを呼び出します。- パラメータ:
parent
- 親のClassLoader- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckCreateClassLoader
メソッドがクラス・ローダーの作成を許可しない場合。- 関連項目:
SecurityManager.checkCreateClassLoader()
-
SecureClassLoader
protected SecureClassLoader()委譲のためにデフォルトの親クラス・ローダーを使って、新規SecureClassLoaderを作成します。セキュリティ・マネージャが存在する場合、このクラス・ローダーの作成が許可されるように、このメソッドは最初にセキュリティ・マネージャの
checkCreateClassLoader
メソッドを呼び出します。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckCreateClassLoader
メソッドがクラス・ローダーの作成を許可しない場合。- 関連項目:
SecurityManager.checkCreateClassLoader()
-
SecureClassLoader
protected SecureClassLoader(String name, ClassLoader parent)指定された名前の新しいSecureClassLoader
を作成し、指定された親クラス・ローダーを委譲のために使用します。- パラメータ:
name
- クラス・ローダー名;名前が付けられていない場合はnull
parent
- 親クラス・ローダー- 例外:
IllegalArgumentException
- 指定された名前が空の場合。SecurityException
- セキュリティ・マネージャが存在し、SecurityManager.checkCreateClassLoader()
メソッドがクラス・ローダーの作成を許可しない場合。- 導入されたバージョン:
- 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
- コード・ソース。- 戻り値:
- コード・ソースに与えられたアクセス権。
-