javax.security.auth
Class SubjectDomainCombiner
- java.lang.Object
javax.security.auth.SubjectDomainCombiner
All implemented interfaces:
java.security.DomainCombiner
- public class SubjectDomainCombiner
- extends java.lang.Object
- implements java.security.DomainCombiner
SubjectDomainCombiner
updates ProtectionDomains
with Principals from the Subject
associated with this
SubjectDomainCombiner
.
Constructor Summary
Constructor and Description |
---|
SubjectDomainCombiner(Subject subject)
Associate the provided
Subject with this
SubjectDomainCombiner .
|
Method Summary
Modifier and Type | Method and Description |
---|---|
|
combine(java.security.ProtectionDomain[] currentDomains,java.security.ProtectionDomain[] assignedDomains)
Update the relevant ProtectionDomains with the Principals
from the
Subject associated with this
SubjectDomainCombiner .
|
getSubject()
Get the
Subject associated with this
SubjectDomainCombiner .
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail
SubjectDomainCombiner
- public SubjectDomainCombiner(Subject subject)
Parameters:
subject
- the Subject
to be associated with
with this SubjectDomainCombiner
. Method Detail
getSubject
- public Subject getSubject()
Get the
Subject
associated with this
SubjectDomainCombiner
.
Returns:
the
Subject
associated with this
SubjectDomainCombiner
, or null
if no Subject
is associated with this
SubjectDomainCombiner
. Throws:
java.lang.SecurityException
- if the caller does not have permission
to get the Subject
associated with this
SubjectDomainCombiner
. combine
- public java.security.ProtectionDomain[] combine( java.security.ProtectionDomain[] currentDomains,
- java.security.ProtectionDomain[] assignedDomains)
Update the relevant ProtectionDomains with the Principals
from the
Subject
associated with this
SubjectDomainCombiner
.
A new ProtectionDomain
instance is created
for each ProtectionDomain
in the
currentDomains array. Each new ProtectionDomain
instance is created using the CodeSource
,
Permission
s and ClassLoader
from the corresponding ProtectionDomain
in
currentDomains, as well as with the Principals from
the Subject
associated with this
SubjectDomainCombiner
.
All of the newly instantiated ProtectionDomains 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.
Specified by:
combine
in interface java.security.DomainCombiner
Parameters:
currentDomains
- the ProtectionDomains associated with the
current execution Thread, up to the most recent
privileged ProtectionDomain
.
The ProtectionDomains are 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. Returns:
a new array consisting of the updated ProtectionDomains,
or
null
.
Subject
with thisSubjectDomainCombiner
.