Module java.base

Class SubjectDomainCombiner

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

@Deprecated(since="17", forRemoval=true) public class SubjectDomainCombiner extends Object implements DomainCombiner
Deprecated, for removal: This API element is subject to removal in a future version.
This class is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release. Consequently, this class is also deprecated and subject to removal. There is no replacement for the Security Manager or this class.
一个SubjectDomainCombiner会使用与该SubjectDomainCombiner关联的Subject中的Principal更新ProtectionDomains。
自从:
1.4
  • Constructor Summary

    Constructors
    Constructor
    Description
    已弃用,将被移除: 该API元素可能在将来的版本中被移除。
    将提供的Subject与该SubjectDomainCombiner关联。
  • Method Summary

    Modifier and Type
    Method
    Description
    combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
    已弃用,将被移除: 该API元素可能在将来的版本中被移除。
    使用与该SubjectDomainCombiner关联的Subject中的Principal更新相关的ProtectionDomains。
    已弃用,将被移除: 该API元素可能在将来的版本中被移除。
    获取与该SubjectDomainCombiner关联的Subject

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SubjectDomainCombiner

      public SubjectDomainCombiner(Subject subject)
      Deprecated, for removal: This API element is subject to removal in a future version.
      将提供的Subject与该SubjectDomainCombiner关联。
      参数:
      subject - 要与该SubjectDomainCombiner关联的Subject
  • Method Details

    • getSubject

      public Subject getSubject()
      Deprecated, for removal: This API element is subject to removal in a future version.
      获取与该SubjectDomainCombiner关联的Subject
      返回:
      与该SubjectDomainCombiner关联的Subject,如果没有与该SubjectDomainCombiner关联的Subject则返回null
      抛出:
      SecurityException - 如果调用者没有权限获取与该SubjectDomainCombiner关联的Subject
    • combine

      public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
      Deprecated, for removal: This API element is subject to removal in a future version.
      使用与该SubjectDomainCombiner关联的Subject中的Principal更新相关的ProtectionDomains。

      currentDomains数组中的每个非静态ProtectionDomain((staticPermissionsOnly() == false)创建一个新的ProtectionDomain实例。每个新的ProtectionDomain实例使用currentDomains中相应ProtectionDomainCodeSourcePermissionClassLoader,以及与该SubjectDomainCombiner关联的Subject中的Principal创建。静态ProtectionDomains保持不变,不会创建新实例。

      所有ProtectionDomains(静态和新实例化的)都合并到一个新数组中。来自assignedDomains数组的ProtectionDomains将附加到此新数组,然后返回结果。

      请注意,可能已发生诸如删除重复ProtectionDomains等优化。此外,可能允许缓存ProtectionDomains。

      指定者:
      combine 在接口 DomainCombiner
      参数:
      currentDomains - 与当前执行线程关联的ProtectionDomains,直到最近的特权ProtectionDomain。ProtectionDomains按执行顺序列出,最近执行的ProtectionDomain位于数组的开头。如果当前执行线程没有关联的ProtectionDomains,则此参数可以为null
      assignedDomains - 从父线程继承的ProtectionDomains,或者从特权context中继承的ProtectionDomains,如果发生了对AccessController.doPrivileged(..., context)的调用,则此参数可以为null。如果没有从父线程或特权context继承的ProtectionDomains,则此参数可以为null
      返回:
      由更新的ProtectionDomains组成的新数组,或null