DomainCombinerpublic class SubjectDomainCombiner extends Object implements DomainCombiner
SubjectDomainCombiner updates ProtectionDomains
with Principals from the Subject associated with this
SubjectDomainCombiner.| Constructor | Description |
|---|---|
SubjectDomainCombiner(Subject subject) |
Associate the provided
Subject with this
SubjectDomainCombiner. |
| Modifier and Type | Method | Description |
|---|---|---|
ProtectionDomain[] |
combine(ProtectionDomain[] currentDomains,
ProtectionDomain[] assignedDomains) |
Update the relevant ProtectionDomains with the Principals
from the
Subject associated with this
SubjectDomainCombiner. |
Subject |
getSubject() |
Get the
Subject associated with this
SubjectDomainCombiner. |
public SubjectDomainCombiner(Subject subject)
Subject with this
SubjectDomainCombiner.subject - the Subject to be associated with
with this SubjectDomainCombiner.public Subject getSubject()
Subject associated with this
SubjectDomainCombiner.Subject associated with this
SubjectDomainCombiner, or null
if no Subject is associated with this
SubjectDomainCombiner.SecurityException - if the caller does not have permission
to get the Subject associated with this
SubjectDomainCombiner.public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
Subject associated with this
SubjectDomainCombiner.
A new ProtectionDomain instance is created
for each non-static ProtectionDomain (
(staticPermissionsOnly() == false)
in the currentDomains array. Each new ProtectionDomain
instance is created using the CodeSource,
Permissions and ClassLoader
from the corresponding ProtectionDomain in
currentDomains, as well as with the Principals from
the Subject associated with this
SubjectDomainCombiner. Static ProtectionDomains are
combined as-is and no new instance is created.
All of the ProtectionDomains (static and newly instantiated) are
combined into a new array. The ProtectionDomains from the
assignedDomains array are appended to this new array,
and the result is returned.
Note that optimizations such as the removal of duplicate ProtectionDomains may have occurred. In addition, caching of ProtectionDomains may be permitted.
combine in interface DomainCombinercurrentDomains - the ProtectionDomains associated with the
current execution Thread, up to the most recent
privileged ProtectionDomain.
The ProtectionDomains are listed in order of execution,
with the most recently executing ProtectionDomain
residing at the beginning of the array. This parameter may
be null if the current execution Thread
has no associated ProtectionDomains.assignedDomains - the ProtectionDomains inherited from the
parent Thread, or the ProtectionDomains from the
privileged context, if a call to
AccessController.doPrivileged(..., context)
had occurred This parameter may be null
if there were no ProtectionDomains inherited from the
parent Thread, or from the privileged context.null. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2017, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.
DRAFT 9-internal+0-adhoc.mlchung.jdk9-jdeps