JavaTM Platform
Standard Ed. 6

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  Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
          オプションの CodeSource を使って、ByteBufferClass クラスのインスタンスに変換します。
protected  PermissionCollection getPermissions(CodeSource codesource)
          指定された CodeSource オブジェクトのアクセス権を返します。
 
クラス java.lang.ClassLoader から継承されたメソッド
clearAssertionStatus, defineClass, 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」で始まる場合

defineClass

protected final Class<?> defineClass(String name,
                                     ByteBuffer b,
                                     CodeSource cs)
オプションの CodeSource を使って、ByteBufferClass クラスのインスタンスに変換します。最初にクラスを解決してからでなければ、クラスを使用することはできません。

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」で始まる場合
導入されたバージョン:
1.5

getPermissions

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

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

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

JavaTM Platform
Standard Ed. 6

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

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。