Jean-Louis- JDK 25 didn’t remove AccessControler.getContext(), only marked it for deprecation—
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/AccessController.html#getContext() From what I’ve ascertained there are two ‘modes’ of using JAAS API with JDK 21+ 1. Use the legacy JAAS API (ThreadLocals w/ AccessController to fetch the active Subject) 2. Use the new JAAS API (ScopedValue w/ Subject.current() to fetch the active Subject) As long as the broker and all modules are consistent, there should be no issue. Thanks, Matt > On Nov 13, 2025, at 4:37 PM, Jean-Louis Monteiro <[email protected]> > wrote: > > Matt, > > I'll submit a PR to your branch if you are ok with it. > No it won't work because we need at least Subject.current() from Java 18+ > > I have not checked all the code base yet, but I have also fixed some tests. > > > -- > Jean-Louis Monteiro > http://twitter.com/jlouismonteiro > http://www.tomitribe.com > > > On Thu, Nov 13, 2025 at 11:35 PM Matt Pavlovich <[email protected]> wrote: > >> Hi Jean-Louis- >> >> I did a test build today off the latest 6.2.0 and JDK 25 compiles all >> classes and test classes. I’m updating Jenkins to kick off a build w/ JDK >> 25. I think it may ‘just work’. >> >> If we need JDK 21 for JAAS, I think we can solve for it with MR jars >> and/or only requiring JDK 21 for the activemq-jaas library. I’m not a big >> fan of shims b/c they require third-party plugins to magically ‘know’ to >> use the shim instead of the JAAS API. >> >> The main hold-up of JDK 21-minimum is the use of the broker in unit tests >> and as an embedded broker in Spring Boot apps. >> >> Thanks! >> Matt Pavlovich >> >>> On Nov 13, 2025, at 11:29 AM, Jean-Louis Monteiro < >> [email protected]> wrote: >>> >>> Hi Matt and all, >>> >>> I pulled Matt's branch to start building on Java 25. Jenkins is currently >>> starting to build. >>> >>> I'd like to push some PR's to Matt's branch, but would like to open the >>> discussion on moving main to Java 21. >>> >>> We are currently in Java 17 for compilation. But we will need an API from >>> Java 18+ (Subject.current() for instance to workaround SecurityManager >>> removal). I don't think it makes much sense to move from Java 17 to Java >> 18 >>> and I do think we should move to Java 21 instead. We will need Virtual >>> Threads at some point anyways and they are part of Java 21. >>> >>> I'd also like to yank Java 17 from jenkinsfile and keep only 21 and 25. >>> >>> I have everything ready and I'm building from there. >>> Thoughts? >>> >>> >>> >>> -- >>> Jean-Louis Monteiro >>> http://twitter.com/jlouismonteiro >>> http://www.tomitribe.com >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> For further information, visit: https://activemq.apache.org/contact >> >> >>
