JavaTM 2 Platform
Std. Ed. v1.3

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 から継承したメソッド
defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, 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 が指定され、Policy プロバイダがインストールされている場合、ProtectionDomain をその定義されているクラスと関連させるために Policy.getPermissions() が呼び出されます。

パラメータ:
name - クラスの名前
b - クラスバイト
off - クラスバイトの開始オフセット
len - クラスバイト長
cs - 関連した CodeSource。存在しない場合は null
戻り値:
データから作成された Class オブジェクトと、オプションの CodeSource

getPermissions

protected PermissionCollection getPermissions(CodeSource codesource)
CodeSource オブジェクトのアクセス権を返します。このメソッドのデフォルト実装は、java.security.Policy.getPermissions メソッドを呼び出して、指定された CodeSource に対しポリシーによってアクセス権を取得できます。

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

構築された ProtectionDomain は SecureClassLoader によってキャッシュされます。キャッシュのコンテンツは、SecureClassLoader インスタンスが存在している間は持続します。この持続性は、すでに指定された CodeSource のキャッシュにある保護ドメインの影響から Policy.refresh() を抑制します。

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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