jmx-dev RFR: 8296244: Alternate implementation of user-based authorization Subject APIs that doesn’t depend on Security Manager APIs [v7]
Weijun Wang
weijun at openjdk.org
Wed Mar 20 01:57:51 UTC 2024
> This code change adds an alternative implementation of user-based authorization `Subject` APIs that doesn't depend on Security Manager APIs. Depending on if the Security Manager is allowed, the methods store the current subject differently. See the spec change in the `Subject.java` file for details. When the Security Manager APIs are finally removed in a future release, this new implementation will be only implementation for these methods.
>
> One major change in the new implementation is that `Subject.getSubject` always throws an `UnsupportedOperationException` since it has an `AccessControlContext` argument but the current subject is no longer associated with an `AccessControlContext` object.
>
> Now it's the time to migrate from the `getSubject` and `doAs` methods to `current` and `callAs`. If the user application is simply calling `getSubject(AccessController.getContext())`, then switching to `current()` would work. If the `AccessControlContext` argument is retrieved from an earlier `getContext()` call and the associated subject might be different from that of the current `AccessControlContext`, then instead of storing the previous `AccessControlContext` object and passing it into `getSubject` to get the "previous" subject, the application should store the `current()` return value directly.
Weijun Wang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 11 additional commits since the last revision:
- years and comments
- Merge branch 'master' into 8296244
- revert changes to MBeanServerFileAccessController.java
- Merge branch 'master' into 8296244
- revert some test changes, spec change for subject
- fix MBeanServerFileAccessController, more test in SM
- JMX needs SM
- Resolve Alan's comments
- remove exe bits
- remove x bit
- ... and 1 more: https://git.openjdk.org/jdk/compare/bb164794...dfa22af0
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/17472/files
- new: https://git.openjdk.org/jdk/pull/17472/files/80810b54..dfa22af0
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=17472&range=06
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=17472&range=05-06
Stats: 384142 lines in 1493 files changed: 18191 ins; 81433 del; 284518 mod
Patch: https://git.openjdk.org/jdk/pull/17472.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17472/head:pull/17472
PR: https://git.openjdk.org/jdk/pull/17472
More information about the jmx-dev
mailing list