java.lang.Object javax.security.auth.SubjectDomainCombiner
public class SubjectDomainCombiner
SubjectDomainCombiner
通过与此 SubjectDomainCombiner
关联的 Subject
中的 Principals 更新 ProtectionDomains。
构造方法摘要 | |
---|---|
SubjectDomainCombiner(Subject subject) 将提供的 Subject 与此 SubjectDomainCombiner 关联。 |
方法摘要 | |
---|---|
ProtectionDomain[] |
combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains) 使用与此 SubjectDomainCombiner 关联的 Subject 中的 Principals 更新相关的 ProtectionDomains。 |
Subject |
getSubject() 获取与此 SubjectDomainCombiner 关联的 Subject 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public SubjectDomainCombiner(Subject subject)
Subject
与此
SubjectDomainCombiner
关联。
subject
- 要与此
SubjectDomainCombiner
关联的
Subject
。
方法详细信息 |
---|
public Subject getSubject()
SubjectDomainCombiner
关联的
Subject
。
SubjectDomainCombiner
关联的
Subject
,如果没有与此
SubjectDomainCombiner
关联的
Subject
,则返回
null
。
SecurityException
- 如果调用者没有获取与此
SubjectDomainCombiner
关联的
Subject
的权限。
public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
SubjectDomainCombiner
关联的
Subject
中的 Principals 更新相关的 ProtectionDomains。
为 currentDomains 数组中的每个 ProtectionDomain
创建一个新的 ProtectionDomain
实例。每个新 ProtectionDomain
实例使用相应的 currentDomains 中的 ProtectionDomain
的 CodeSource
、Permission
和 ClassLoader
,以及与此 SubjectDomainCombiner
关联的 Subject
的 Principals 来创建。
将所有新实例化的 ProtectionDomains 组合到一个新数组中。把 assignedDomains 数组中的 ProtectionDomains 追加到此新数组中,同时返回结果。
注意,可能发生移除重复的 ProtectionDomains 这样的优化。另外,也允许缓存 ProtectionDomains。
DomainCombiner
中的
combine
currentDomains
- 与当前执行线程关联的 ProtectionDomain,直到最近的特权
ProtectionDomain
。ProtectionDomain 按执行的顺序列出,最近执行的
ProtectionDomain
位于数组的开头。如果当前的执行线程没有相关的 ProtectionDomains,则此参数可以为
null
。
assignedDomains
- 从父线程继承的 ProtectionDomains,如果发生对 AccessController.doPrivileged(...,
context) 的调用,则此参数为特权
context 中的 ProtectionDomains。如果不存在从父线程继承的 ProtectionDomains 或不存在取自
context 的 ProtectionDomains,则此参数可以为
null
。
null
。