RFR: 8267108: Alternate Subject.getSubject and doAs APIs that do not depend on Security Manager APIs [v2]
Bernd
duke at openjdk.java.net
Mon Oct 25 20:07:08 UTC 2021
On Mon, 25 Oct 2021 18:08:19 GMT, Weijun Wang <weijun at openjdk.org> wrote:
>> src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java line 708:
>>
>>> 706: @SuppressWarnings("removal")
>>> 707: final Subject subject =
>>> 708: AccessController.doPrivilegedWithCombiner(
>>
>> Is this actually needed and correct to wrap this into a priveledged action?
>
> Oh, it's needed. Otherwise the `AccessController.getContext()` call (which is inside `current()`) will also be called in a clean privileged context and there is no subject associated with it.
>
> On the other hand, it still needs to in some sort of doPriv. I don't want to ignore `AuthPermission("getSubject")`.
Hm yes i see why „withacombiner“ would be needed, just not sure why doPriveledged() is needed (especially since current() does it as well). But I admit i don’t see through that part, so ignore me if I don’t make sense.
>> test/jdk/javax/security/auth/Subject/DoAs.java line 44:
>>
>>> 42: final int index = i;
>>> 43: Subject.callAs(subject, () -> {
>>> 44: Subject s = Subject.current();
>>
>> Should it Test old and new method to retrieve subject?
>
> I did it in `CurrentSubject.java` when test=both (checking `cas != accs` in `check()`). All changes to existing tests are just to avoid calling deprecated methods.
Yes, probably not worth it in all tests (but would be maybe a good one time exercise?)
-------------
PR: https://git.openjdk.java.net/jdk/pull/5024
More information about the security-dev
mailing list