|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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 将 ByteBuffer 转换为 Class 类的实例。 |
protected PermissionCollection |
getPermissions(CodeSource codesource) 返回给定的 CodeSource 对象的权限。 |
从类 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
- 组成类数据的字节。从off
到off+len-1
的字节应该具有由《Java Virtual Machine Specification》定义的有效类文件的格式。 -
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
- 组成类数据的字节。从 b.position() 到 b.position() + b.limit() -1 的字节应该具有由《Java Virtual Machine Specification》定义的有效类文件的格式。 -
cs
- 相关的 CodeSource,如果没有,则为null
- 返回:
-
通过该数据创建的
Class
对象和可选的 CodeSource。 - 抛出:
-
ClassFormatError
- 如果数据未包含一个有效类 -
SecurityException
- 如果试图将该类添加到包含使用与该类不同的证书集签名的类的包中,或者类名以 "java." 开头。 - 从以下版本开始:
- 1.5
getPermissions
protected PermissionCollection getPermissions(CodeSource codesource)
-
返回给定的 CodeSource 对象的权限。
此方法将由 defineClass 方法调用,后者在构造 ProtectionDomain 时将 CodeSource 作为要定义的类的参数。
-
- 参数:
-
codesource
- codesource。 - 返回:
- 授予 codesource 的权限。
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |