所有类
javax.security.auth
类 SubjectDomainCombiner
java.lang.Object
javax.security.auth.SubjectDomainCombiner
-
所有已实现的接口:
-
DomainCombiner
-
public class SubjectDomainCombiner
- extends Object
- implements DomainCombiner
SubjectDomainCombiner
通过与此 SubjectDomainCombiner
关联的 Subject
中的 Principals 更新 ProtectionDomains。
从类 java.lang.Object 继承的方法 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SubjectDomainCombiner
public SubjectDomainCombiner(Subject subject)
-
将提供的
Subject
与此 SubjectDomainCombiner
关联。
-
参数:
-
subject
- 要与此 SubjectDomainCombiner
关联的 Subject
。
getSubject
public Subject getSubject()
-
获取与此
SubjectDomainCombiner
关联的 Subject
。
-
-
-
返回:
-
与此
SubjectDomainCombiner
关联的 Subject
,如果没有与此 SubjectDomainCombiner
关联的 Subject
,则返回 null
。
-
抛出:
-
SecurityException
- 如果调用方没有获取与此 SubjectDomainCombiner
关联的 Subject
的权限。
combine
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
。
-
返回:
-
由更新的 ProtectionDomains 组成的新数组,或
null
。
所有类