|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.security
类 Policy
java.lang.Object java.security.Policy
-
public abstract class Policy
- extends Object
这是一个用于表示 Java 应用环境的系统安全策略(为来自各种源的代码指定可用的权限)的抽象类。也就是说,安全策略通过一个 Policy 子类提供此 Policy 类中抽象方法的实现来表示。
实际上在任意给定时间只有一个 Policy 对象。
Policy 对象利用的策略信息的源位置由 Policy 实现决定。策略配置可以被存储为(例如)纯 ASCII 文件、Policy 类的序列化的二进制文件,或数据库。
当前安装的 Policy 对象可以通过调用 getPolicy
方法获取,可以通过调用 setPolicy
方法更改(通过具有重置 Policy 权限的代码)。
refresh
方法促使 policy 对象刷新/重新加载其当前配置。
这是依赖于实现的。例如,如果 policy 对象在配置文件中存储其策略,调用 refresh
将导致它重新读取策略配置文件。刷新的策略对特定 ProtectionDomain 中的类可能无效。这与 Policy 提供程序的 implies
方法的实现和 PermissionCollection 的缓冲策略有关。
通过将 "policy.provider" 的安全属性(在 Java 安全属性文件中)的值设置为所需的 Policy 实现类的完全限定名,可以更改默认的 Policy 实现。Java 安全属性文件位于名为 <JAVA_HOME>/lib/security/java.security 的文件中,其中 <JAVA_HOME> 指的是安装 JDK 的目录。
构造方法摘要 | |
---|---|
Policy() |
方法摘要 | |
---|---|
abstract PermissionCollection |
getPermissions(CodeSource codesource) 评估全局策略并返回 PermissionCollection 对象,该对象为来自指定代码源的代码指定所允许的权限集合。 |
PermissionCollection |
getPermissions(ProtectionDomain domain) 评估全局策略并且返回 PermissionCollection 对象,该对象指定所允许的权限集合(给出了保护域的特征)。 |
static Policy |
getPolicy() 返回安装的 Policy 对象。 |
boolean |
implies(ProtectionDomain domain, Permission permission) 评估授予 ProtectionDomain 的权限的全局策略并测试是否授予了该权限。 |
abstract void |
refresh() 刷新/重新加载策略配置。 |
static void |
setPolicy(Policy p) 设置系统级 Policy 对象。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
Policy
public Policy()
方法详细信息 |
---|
getPolicy
public static Policy getPolicy()
-
返回安装的 Policy 对象。此值不应该被缓存,因为它可能通过调用
setPolicy
更改。此方法首先用SecurityPermission("getPolicy")
权限作为参数调用SecurityManager.checkPermission
来保证可以获取 Policy 对象。 -
- 返回:
- 安装的 Policy。
- 抛出:
-
SecurityException
- 如果安全管理器存在并且其checkPermission
方法不允许获取 Policy 对象。 - 另请参见:
-
SecurityManager.checkPermission(Permission)
,setPolicy(java.security.Policy)
setPolicy
public static void setPolicy(Policy p)
-
设置系统级 Policy 对象。此方法首先用
SecurityPermission("setPolicy")
权限作为参数调用SecurityManager.checkPermission
来保证可以设置 Policy。 -
- 参数:
-
p
- 新的系统 Policy 对象。 - 抛出:
-
SecurityException
- 如果安全管理器存在并且其checkPermission
方法不允许设置 Policy。 - 另请参见:
-
SecurityManager.checkPermission(Permission)
,getPolicy()
getPermissions
public abstract PermissionCollection getPermissions(CodeSource codesource)
- 评估全局策略并返回 PermissionCollection 对象,该对象为来自指定代码源的代码指定所允许的权限集合。
-
- 参数:
-
codesource
- 与调用方关联的 CodeSource。此参数封装了代码的初始位置(代码的来源)及其签名者的公钥。 - 返回:
- 根据策略允许来自 codesource 的代码使用的权限集合。返回的权限集合必须是新的不可变实例并且它必须支持不同种类的 Permission 类型。
getPermissions
public PermissionCollection getPermissions(ProtectionDomain domain)
- 评估全局策略并且返回 PermissionCollection 对象,该对象指定所允许的权限集合(给出了保护域的特征)。
-
- 参数:
-
domain
- 与调用方关联的 ProtectionDomain。 - 返回:
- 根据策略允许给 domain 的权限集合。返回的权限集合必须是新的不可变实例并且它必须支持不同种类的 Permission 类型。
- 从以下版本开始:
- 1.4
- 另请参见:
-
ProtectionDomain
,SecureClassLoader
implies
public boolean implies(ProtectionDomain domain, Permission permission)
- 评估授予 ProtectionDomain 的权限的全局策略并测试是否授予了该权限。
-
- 参数:
-
domain
- 要测试的 ProtectionDomain -
permission
- 要测试其暗含权限的 Permission 对象。 - 返回:
- 如果 "permission" 是授予此 ProtectionDomain 的真子集,则返回 true。
- 从以下版本开始:
- 1.4
- 另请参见:
-
ProtectionDomain
refresh
public abstract void refresh()
-
刷新/重新加载策略配置。此方法的行为取决于实现。例如,对基于文件的策略调用
refresh
将导致重新读取该文件。 -
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |