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
>> 
>> 
>> 

Reply via email to