JavaTM 2
Platform
Std. Ed. v1.4.0

java.security
クラス SecureClassLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
        |
        +--java.security.SecureClassLoader
直系の既知のサブクラス:
URLClassLoader

public class SecureClassLoader
extends ClassLoader

このクラスは、デフォルトでシステムポリシーによって抽出される関連したコードソースとアクセス権を持つクラスを定義するための追加サポートを使用して、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  PermissionCollection getPermissions(CodeSource codesource)
          指定された CodeSource オブジェクトのアクセス権を返します。
 
クラス java.lang.ClassLoader から継承したメソッド
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

SecureClassLoader

protected SecureClassLoader(ClassLoader parent)
委譲のために指定された親クラスローダを使って、新規 SecureClassLoader を作成します。

セキュリティマネージャが存在する場合、このメソッドは最初にセキュリティマネージャの checkCreateClassLoader メソッドを呼び出すことにより、このクラスローダの作成が許可されていることを確認します。

パラメータ:
parent - 親の ClassLoader
例外:
SecurityException - セキュリティマネージャが存在し、その checkCreateClassLoader メソッドがクラスローダの作成を許可しない場合
関連項目:
SecurityManager.checkCreateClassLoader()

SecureClassLoader

protected SecureClassLoader()
委譲のためにデフォルトの親クラスローダを使って、新規 SecureClassLoader を作成します。

セキュリティマネージャが存在する場合、このメソッドは最初にセキュリティマネージャの checkCreateClassLoader メソッドを呼び出すことにより、このクラスローダの作成が許可されていることを確認します。

例外:
SecurityException - セキュリティマネージャが存在し、その checkCreateClassLoader メソッドがクラスローダの作成を許可しない場合
関連項目:
SecurityManager.checkCreateClassLoader()
メソッドの詳細

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 から off+len-1 までの位置にある byte は、Java 仮想マシン仕様で定義される有効なクラスファイルの形式を持つ
off - クラスデータの b の開始オフセット
len - クラスデータの長さ
cs - 関連した CodeSource。存在しない場合は null
戻り値:
データから作成された Class オブジェクトと、オプションの CodeSource
例外:
ClassFormatError - データが有効なクラスを含まなかった場合
IndexOutOfBoundsException - off または len のどちらかが負の場合、または off+lenb.length よりも大きい場合
SecurityException - このクラスではなく証明書の個別セットを使って署名されたクラスを含むパッケージに、このクラスを追加しようとする場合、あるいはクラス名が「java」で始まる場合

getPermissions

protected PermissionCollection getPermissions(CodeSource codesource)
指定された CodeSource オブジェクトのアクセス権を返します。

このメソッドは、定義されたクラスの ProtectionDomain を構築しているときに、CodeSource を引数として取る defineClass メソッドによって呼び出されます。

パラメータ:
codesource - コードソース
戻り値:
コードソースに与えられたアクセス権

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.