RFR: 8267108: Alternate Subject.getSubject and doAs APIs that do not depend on Security Manager APIs [v2]

Weijun Wang weijun at openjdk.java.net
Wed Oct 27 14:40:19 UTC 2021


On Wed, 27 Oct 2021 12:46:57 GMT, Sean Mullan <mullan at openjdk.org> wrote:

>> Weijun Wang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   renames
>
> src/java.base/share/classes/javax/security/auth/Subject.java line 324:
> 
>> 322:     }
>> 323: 
>> 324:     // Store the current subject to a ThreadLocal when a system property is set.
> 
> nit: "... in a ThreadLocal ..."

Oops.

> src/java.base/share/classes/javax/security/auth/Subject.java line 360:
> 
>> 358:      * <p>
>> 359:      * No matter what storage is chosen, the current subject will
>> 360:      * always be installed by the {@link #callAs} method.
> 
> I'm not really sure if this sentence is necessary. It seems like it doesn't need to be in the specification to me. The first sentence is clear enough to me: "The current subject is installed by the {@link #callAs} method."

Removed.

> src/java.base/share/classes/javax/security/auth/Subject.java line 362:
> 
>> 360:      * always be installed by the {@link #callAs} method.
>> 361:      *
>> 362:      * @return the current subject. The return value can be
> 
> Suggest to combine this into one sentence: the current subject, or {@code null} if a current subject is not installed or the current subject is set to {@code null}."

OK.

> src/java.base/share/classes/javax/security/auth/Subject.java line 394:
> 
>> 392:      *
>> 393:      * @param subject the intended current subject for {@code action}.
>> 394:      *                Can be {@code null}.
> 
> Is it necessary to allow `null` in the new `callAs` method? Is there a use case where this is useful? I know the `doAs` methods allowed it, but it looks like they simply call `AccessController.doPrivileged` in that case w/o a subject. Seems it would be simpler to not allow it and throw an NPE.

Maybe in a nested call that wants to clear out the existing subject temporarily? It could be useful.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5024



More information about the security-dev mailing list