SubjectDomainCombiner (Java SE 11 & JDK 11 ) (original) (raw)
- javax.security.auth.SubjectDomainCombiner
All Implemented Interfaces:
[DomainCombiner](../../../java/security/DomainCombiner.html "interface in java.security")
public class SubjectDomainCombiner
extends Object
implements DomainCombiner
A SubjectDomainCombiner
updates ProtectionDomains with Principals from the Subject
associated with thisSubjectDomainCombiner
.
Since:
1.4
Constructor Summary
Constructors
Constructor Description SubjectDomainCombiner(Subject subject) Associate the provided Subject with thisSubjectDomainCombiner. Method Summary
All Methods Instance Methods Concrete Methods
Modifier and Type Method Description ProtectionDomain[] combine(ProtectionDomain[] currentDomains,ProtectionDomain[] assignedDomains) Update the relevant ProtectionDomains with the Principals from the Subject associated with thisSubjectDomainCombiner. Subject getSubject() Get the Subject associated with thisSubjectDomainCombiner. * ### Methods declared in class java.lang.[Object](../../../java/lang/Object.html "class in java.lang") `[clone](../../../java/lang/Object.html#clone%28%29), [equals](../../../java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../../java/lang/Object.html#finalize%28%29), [getClass](../../../java/lang/Object.html#getClass%28%29), [hashCode](../../../java/lang/Object.html#hashCode%28%29), [notify](../../../java/lang/Object.html#notify%28%29), [notifyAll](../../../java/lang/Object.html#notifyAll%28%29), [toString](../../../java/lang/Object.html#toString%28%29), [wait](../../../java/lang/Object.html#wait%28%29), [wait](../../../java/lang/Object.html#wait%28long%29), [wait](../../../java/lang/Object.html#wait%28long,int%29)`
Constructor Detail
* #### SubjectDomainCombiner public SubjectDomainCombiner([Subject](Subject.html "class in javax.security.auth") subject) Associate the provided `Subject` with this`SubjectDomainCombiner`. Parameters: `subject` \- the `Subject` to be associated with with this `SubjectDomainCombiner`.
Method Detail
* #### getSubject public [Subject](Subject.html "class in javax.security.auth") 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: `[SecurityException](../../../java/lang/SecurityException.html "class in java.lang")` \- if the caller does not have permission to get the `Subject` associated with this`SubjectDomainCombiner`. * #### combine public [ProtectionDomain](../../../java/security/ProtectionDomain.html "class in java.security")[] combine([ProtectionDomain](../../../java/security/ProtectionDomain.html "class in java.security")[] currentDomains, [ProtectionDomain](../../../java/security/ProtectionDomain.html "class in java.security")[] assignedDomains) Update the relevant ProtectionDomains with the Principals from the `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`,`Permission`s 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. Specified by: `[combine](../../../java/security/DomainCombiner.html#combine%28java.security.ProtectionDomain%5B%5D,java.security.ProtectionDomain%5B%5D%29)` in interface `[DomainCombiner](../../../java/security/DomainCombiner.html "interface in java.security")` Parameters: `currentDomains` \- 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`. Returns: a new array consisting of the updated ProtectionDomains, or `null`.
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2025, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.