JavaTM Platform
Standard Ed. 6

javax.security.auth
类 SubjectDomainCombiner

java.lang.Object
  继承者 javax.security.auth.SubjectDomainCombiner
所有已实现的接口:
DomainCombiner

public class SubjectDomainCombiner
     
extends Object
implements DomainCombiner

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
 

构造方法详细信息

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 中的 ProtectionDomainCodeSourcePermissionClassLoader,以及与此 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

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策