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)
オプションの CodeSource を使って、
ByteBuffer をクラス Class のインスタンスに変換します。 |
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™ 仮想マシン仕様』で定義される有効なクラスファイルの形式を持つ。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 のインスタンスに変換します。最初にクラスを解決してからでなければ、クラスを使用することはできません。
null ではない CodeSource が提供される場合、ProtectionDomain は定義済みのクラスで構築され関連付けられます。
name
- クラスの名前として期待するもの。不明な場合は null
。区切り文字には「/」ではなく「.」を使う。クラス名のあとの接尾辞「.class」は付けない。b
- クラスデータを構成する byte。b.position() から b.position() + b.limit() -1 までの位置にある byte は、『Java™ 仮想マシン仕様』で定義される有効なクラスファイルの形式を持つ。cs
- 関連した CodeSource。存在しない場合は null
Class
オブジェクトと、オプションの CodeSource。ClassFormatError
- データが有効なクラスを含まなかった場合SecurityException
- このクラスではなく、別の証明書のセットを使って署名されたクラスを含むパッケージにこのクラスを追加しようとする場合、またはクラス名が「java」で始まる場合。protected PermissionCollection getPermissions(CodeSource codesource)
このメソッドは、定義されたクラスの ProtectionDomain を構築しているときに、CodeSource を引数として取る defineClass メソッドによって呼び出されます。
codesource
- コードソース。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.