[
https://issues.apache.org/jira/browse/ARTEMIS-5711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram updated ARTEMIS-5711:
------------------------------------
Description:
The Java SecurityManager was deprecated in Java 17 for removal, with no aim to
replace the functionality. The Subject class also uses parts of the
{{SecurityManager}} API, but it has its own usages beyond the
{{SecurityManager}} functionality, so replacement functionality for the
affected methods were added in Java 18 in the {{Subject.current()}} and
{{Subject.callAs(..)}} methods.
Java 23 began the process for removing the {{SecurityManager}} implementation,
reimplementing the Subject methods with both the old and newer behaviours, and
making {{Subject.getSubject(..)}} throw {{UnsupportedOperationException}}
unless an option flag is used to enable support for a {{SecurityManager}}
(still without actually needing to have an SM in use). [Java 24 actually
removed the SecurityManager implementation|https://openjdk.org/jeps/486] , and
made {{Subject.getSubject()}} always throw {{UnsupportedOperationException}}.
As a result of these changes, building and testing Artemis does not work on
Java 23+ currently, and there are issues running on Java 23+ without at least
disabling the AuditLogging functionality that uses {{Subject.getSubject(..)}}.
These issues can be seen discussed in the referenced ARTEMIS-4975 and
ARTEMIS-5374. Though the other SecurityManager APIs are still present and
'functional' (effectively passthroughs), the APIs will be removed in a future
JDK which will itself present another issue to building and running on those
JDKs
This Jira seeks to enable building/testing and running on Java 25 and beyond by
addressing these issues. To achieve this, references to the {{SecurityManager}}
/ {{Subject}} APIs affected will be contained to a wrapper shim, with an
implementation using the old methods targeting Java 17-23, and a second shim
implementation using the new Subject methods (and not using any
{{SecurityManager}} methods at all) targeting Java 24+ and thus enabling Java
25 support and avoiding issues when the old APIs are later removed. (NOTE: on
Java 23 this approach will still requiring either the flag to enable
{{SecurityManager}} support, or disabling the audit logging to avoid it calling
{{Subject.getSubject(..)}}, if not just upgrading to e.g a supported Java 25
release)
Whilst it will still be possible to run/build/test on Java 17+, a side effect
of this approach will be requiring that releases are created using Java 25,
which was [discussed and agreed on the mailing
lists|https://lists.apache.org/thread/7vspfpmfnfqd6fmvpjzm0kr59b5dm9j2].
was:
The Java SecurityManager was deprecated in Java 17 for removal, with no aim to
replace the functionality. The Subject class also uses parts of the
SecurityManager API, but it has its own usages beyond the SecurityManager
functionality, so replacement functionality for the affected methods were added
in Java 18 in the Subject.current() and Subject.callAs(..) methods.
Java 23 began the process for removing the SecurityManager implementation,
reimplementing the Subject methods with both the old and newer behaviours, and
making Subject.getSubject(..) throw UnsupportedOperationException unless an
option flag is used to enable support for a SecurityManager (still without
actually needing to have an SM in use). [Java 24 actually removed the
SecurityManager implementation|https://openjdk.org/jeps/486] , and made
Subject.getSubject() always throw UnsupportedOperationException. As a result of
these changes, building and testing Artemis does not work on Java 23+
currently, and there are issues running on Java 23+ without at least disabling
the AuditLogging functionality that uses Subject.getSubject(..). These issues
can be seen discussed in the referenced ARTEMIS-4975 and ARTEMIS-5374. Though
the other SecurityManager APIs are still present and 'functional' (effectively
passthroughs), the APIs will be removed in a future JDK which will itself
present another issue to building and running on those JDKs
This Jira seeks to enable building/testing and running on Java 25 and beyond by
addressing these issues. To achieve this, references to the SecurityManager /
Subject APIs affected will be contained to a wrapper shim, with an
implementation using the old methods targeting Java 17-23, and a second shim
implementation using the new Subject methods (and not using any SecurityManager
methods at all) targeting Java 24+ and thus enabling Java 25 support and
avoiding issues when the old APIs are later removed. (NOTE: on Java 23 this
approach will still requiring either the flag to enable SecurityManager
support, or disabling the audit logging to avoid it calling
Subject.getSubject(..), if not just upgrading to e.g a supported Java 25
release)
Whilst it will still be possible to run/build/test on Java 17+, a side effect
of this approach will be requiring that releases are created using Java 25,
which was [discussed and agreed on the mailing
lists|https://lists.apache.org/thread/7vspfpmfnfqd6fmvpjzm0kr59b5dm9j2].
> Enable support for building and running on Java 25
> --------------------------------------------------
>
> Key: ARTEMIS-5711
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5711
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Affects Versions: 2.43.0
> Reporter: Robbie Gemmell
> Assignee: Robbie Gemmell
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.44.0
>
> Time Spent: 3h
> Remaining Estimate: 0h
>
> The Java SecurityManager was deprecated in Java 17 for removal, with no aim
> to replace the functionality. The Subject class also uses parts of the
> {{SecurityManager}} API, but it has its own usages beyond the
> {{SecurityManager}} functionality, so replacement functionality for the
> affected methods were added in Java 18 in the {{Subject.current()}} and
> {{Subject.callAs(..)}} methods.
> Java 23 began the process for removing the {{SecurityManager}}
> implementation, reimplementing the Subject methods with both the old and
> newer behaviours, and making {{Subject.getSubject(..)}} throw
> {{UnsupportedOperationException}} unless an option flag is used to enable
> support for a {{SecurityManager}} (still without actually needing to have an
> SM in use). [Java 24 actually removed the SecurityManager
> implementation|https://openjdk.org/jeps/486] , and made
> {{Subject.getSubject()}} always throw {{UnsupportedOperationException}}. As a
> result of these changes, building and testing Artemis does not work on Java
> 23+ currently, and there are issues running on Java 23+ without at least
> disabling the AuditLogging functionality that uses
> {{Subject.getSubject(..)}}. These issues can be seen discussed in the
> referenced ARTEMIS-4975 and ARTEMIS-5374. Though the other SecurityManager
> APIs are still present and 'functional' (effectively passthroughs), the APIs
> will be removed in a future JDK which will itself present another issue to
> building and running on those JDKs
> This Jira seeks to enable building/testing and running on Java 25 and beyond
> by addressing these issues. To achieve this, references to the
> {{SecurityManager}} / {{Subject}} APIs affected will be contained to a
> wrapper shim, with an implementation using the old methods targeting Java
> 17-23, and a second shim implementation using the new Subject methods (and
> not using any {{SecurityManager}} methods at all) targeting Java 24+ and thus
> enabling Java 25 support and avoiding issues when the old APIs are later
> removed. (NOTE: on Java 23 this approach will still requiring either the flag
> to enable {{SecurityManager}} support, or disabling the audit logging to
> avoid it calling {{Subject.getSubject(..)}}, if not just upgrading to e.g a
> supported Java 25 release)
> Whilst it will still be possible to run/build/test on Java 17+, a side effect
> of this approach will be requiring that releases are created using Java 25,
> which was [discussed and agreed on the mailing
> lists|https://lists.apache.org/thread/7vspfpmfnfqd6fmvpjzm0kr59b5dm9j2].
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact