- java.lang.Object
-
- javax.security.auth.SubjectDomainCombiner
-
- All Implemented Interfaces:
-
DomainCombiner
public class SubjectDomainCombiner extends Object implements DomainCombiner
ASubjectDomainCombiner
更新来自与此SubjectDomainCombiner
相关联的Subject
中的主体的SubjectDomainCombiner
。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 Constructor 描述 SubjectDomainCombiner(Subject subject)
将所提供的Subject
与此SubjectDomainCombiner
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ProtectionDomain[]
combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
更新从校长有关的ProtectionDomainsSubject
与此相关SubjectDomainCombiner
。Subject
getSubject()
获取Subject
与此SubjectDomainCombiner
相关联。
-
-
-
构造方法详细信息
-
SubjectDomainCombiner
public SubjectDomainCombiner(Subject subject)
将所提供的Subject
与此SubjectDomainCombiner
。- 参数
-
subject
-在Subject
到与此相关SubjectDomainCombiner
。
-
-
方法详细信息
-
getSubject
public Subject getSubject()
获取Subject
与此SubjectDomainCombiner
相关联。- 结果
-
所述
Subject
与此相关SubjectDomainCombiner
,或null
如果没有Subject
与此相关联的SubjectDomainCombiner
。 - 异常
-
SecurityException
-如果调用方无权获得Subject
与此相关SubjectDomainCombiner
。
-
combine
public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
更新从校长有关的ProtectionDomainsSubject
与此相关SubjectDomainCombiner
。一个新的
ProtectionDomain
实例为每个创建的非静态ProtectionDomain
((staticPermissionsOnly()== FALSE)中currentDomains
阵列。每个新ProtectionDomain
实例使用所创建的CodeSource
,Permission
S和ClassLoader
从相应ProtectionDomain
在currentDomains
,以及与来自与此Subject
相关联的SubjectDomainCombiner
。静态ProtectionDomains按原样组合,并且不创建新实例。所有的ProtectionDomains(静态和新实例化的)被组合成一个新的数组。 来自
assignedDomains
数组的ProtectionDomains会追加到新的数组中,并返回结果。请注意,可能会发生优化,例如删除重复的ProtectionDomain。 另外,可以允许缓存ProtectionDomains。
- Specified by:
-
combine
在接口DomainCombiner
- 参数
-
currentDomains
- 与当前执行线程相关联的ProtectionDomains,最高权限为ProtectionDomain
。 ProtectionDomains按执行顺序列出,最近执行的ProtectionDomain
位于阵列的开头。 如果当前执行的线程没有关联的ProtectionDomains,此参数可能为null
。 -
assignedDomains
-从特权从父线程继承的ProtectionDomain,或的ProtectionDomaincontext
,如果一个电话AccessController.doPrivileged(..., context)
发生此参数可以为null
如果没有从父线程继承的ProtectionDomain,或从特权context
。 - 结果
-
一个由更新的ProtectionDomains组成的新阵列,或
null
。
-
-