Commit Graph

2545 Commits

Author SHA1 Message Date
Thomas Lavocat ccf500ee1b [ARTEMIS-5219] load all certificates
In the JAAS login module for Kubernetes, the current implementation is
loading only a single CA from the bundle that is given by OpenShift,
which in turn leads to an issue where the broker don't find a proper
PKIX path.

This is fixing the issue by loading every certificates from the bundle.
2024-12-19 14:51:39 +00:00
Justin Bertram a7a70d6595 ARTEMIS-5142 support never expiring incoming messages 2024-12-19 11:28:14 +00:00
Justin Bertram d49476d0a1 [maven-release-plugin] prepare for next development iteration 2024-12-16 09:25:19 -06:00
Justin Bertram fb1c6e3217 [maven-release-plugin] prepare release 2.39.0 2024-12-16 09:19:43 -06:00
Justin Bertram e6f97f6e5c
Revert "[maven-release-plugin] prepare release 2.39.0"
This reverts commit 0604de39d6.
2024-12-16 08:55:55 -06:00
Justin Bertram 6b6ae242ed
Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 918ef0efbe.
2024-12-16 08:55:38 -06:00
Justin Bertram 918ef0efbe [maven-release-plugin] prepare for next development iteration 2024-12-13 08:10:30 -06:00
Justin Bertram 0604de39d6 [maven-release-plugin] prepare release 2.39.0 2024-12-13 08:05:42 -06:00
Clebert Suconic 65df4cfade ARTEMIS-4173 Looking for full log code on assertions over logHandler.findTest 2024-12-09 10:42:40 -05:00
Clebert Suconic 00efad3a1e NO-JIRA fixing a gate on isTraceEnabled 2024-12-05 16:27:03 -05:00
Clebert Suconic 29354d4a66 ARTEMIS-5199 Fixing race on create directory for shared storage
This is fixing SharedStoreDistributionTest
2024-12-04 11:35:46 -05:00
Domenico Francesco Bruscino dbd2e9342f ARTEMIS-5187 Fix management authorization checks after authentication failures
When the ArtemisRbacMBeanServerBuilder class is used for the RBAC management,
a clash of authentication cache keys between clients failing authentication and
web console authenticated users can cause web console authenticated users to
receive authorization errors, blank screens and similar issues after successful
login to the console.
2024-11-28 15:44:43 +01:00
Andy Taylor c9f9b33bf9 ARTEMIS-5131 Add A Copy message button to console
This exposes a copyMessage method that simply copies a message to a different queue so the new console can add a copy button
2024-11-21 12:57:16 -05:00
Timothy Bish e9c06bd9f8 ARTEMIS-5157 Add management for AMQP broker connections
Add basic management views for AMQP broker connections and implement control
types for AMQP federation features along with the broker connection management
views. Some initial work also to provide support for other broker connection
features to add management control and also plan for future views of incoming
broker connections and management of AMQP federation resources.
2024-11-20 12:16:44 +00:00
Gary Tully 717808ce3f ARTEMIS-5158 added accessor to database store config for the driver properties map 2024-11-18 11:24:22 +00:00
Howard Gao c8e3c0060a ARTEMIS-5150: ActiveMQServerControlImpl.getHAPolicy() gets NPE
When you start the broker without configuring HAPolicy, if clients
call this management api it'll get NPE because it doesn't check
if the HAPolicyConfiguration is null.
2024-11-13 12:53:32 +00:00
Robbie Gemmell 8a912ed209 ARTEMIS-5110: retire/exclude previously-used IDs removed/reassigned in the following older commits:
177e6820b5
e34fd09ce3
e065d25b6f
af9bd7b84a
f4bdacbc4c
74951d9221
fe0ca4d84f
b08b91a32f
85857ab8eb
e02ec69021
bf9f6d213b
2d806807b8
52a4157bbb
53bb3ea183
d5f152c725
b3529dcea4
246bf08391
8a04ee07de
6cb68f2ce9
9873fccf74

See PR for individual commits which were squashed to form this change. This closes #5320
2024-11-01 11:23:13 +00:00
Robbie Gemmell 422446e033 ARTEMIS-5132: consolidate ActiveMQQueueLogger into ActiveMQServerLogger 2024-10-28 15:24:36 -05:00
Justin Bertram d01ea80df9 ARTEMIS-5110 add ability to identify retired IDs in log annotations
The broker uses unique IDs for logging statements. As logging changes
over time we need a way to "retire" these IDs (e.g. when certain
logging statements are no longer needed) to ensure they are not used

This commit does the following:

 - Removes all the logging methods which are no longer used and
   "retires" the corresponding ID (i.e. adds them to the `retiredIDs`
   list for that LogBundle).
 - Updates the validation for IDs that have been retired or are in
   active use including a new suggestion about a valid ID to use when an
   invalid ID is found.
 - Fixes all the regular expressions in all the various uses of
   `@LogBundle` to ensure there are no overlaps to prevent duplicates
   between bundles.

Changes from myself and Robbie Gemmell (see PR). This closes #5303.
2024-10-25 15:14:07 +01:00
Clebert Suconic 9c17ea4037 ARTEMIS-5104 Remove unused private fields 2024-10-21 12:10:19 -04:00
Justin Bertram 9380235a5e [maven-release-plugin] prepare for next development iteration 2024-10-16 10:10:37 -05:00
Justin Bertram 241e76f9da [maven-release-plugin] prepare release 2.38.0 2024-10-16 10:08:10 -05:00
Gary Tully e47698453a ARTEMIS-5102 normalise option to DN value parsing for the Cert login module 2024-10-15 11:21:56 -05:00
Domenico Francesco Bruscino c3f1e09e88 ARTEMIS-5101 Deprecate default codec two-way algorithm
Throughout the years, the standard mechanism for storing passwords has evolved.
In the beginning, passwords were stored in plaintext. Developers are now
encouraged to leverage adaptive one-way functions to store a password. Using a
two-way function by default for storing passwords without a warning could lead
users to a false sense of security.
2024-10-15 08:40:14 -05:00
Timothy Bish b843e12852 ARTEMIS-2748 Support WebSocket compression in the transport pipeline
Adds support for WebSocket compression using the netty server handler to
enable per message compression and decompression as a transparent layer of
the netty pipeine.
2024-10-14 16:30:33 +01:00
Clebert Suconic 8e4bc33dc4 ARTEMIS-5097 Allow export and import data of undefined queues
This will allow users eventually undoing mistakes after removing a queue by accident.
2024-10-11 13:22:08 -04:00
Clebert Suconic 6186805b69 ARTEMIS-5090 MirrorSNF is not supposed to expiry on messages 2024-10-09 17:30:26 +01:00
Justin Bertram e1c818d143 ARTEMIS-5078 support divert management via JSON 2024-10-02 14:53:36 -07:00
Justin Bertram 821005ab6e ARTEMIS-5075 support NOT_EQUALS op to filter some mngmnt results
This commit adds support for a NOT_EQUALS operator to the management
operations which already support filtering.

It also adds a handful of tests for the predicate since there didn't
seem to be any such tests.
2024-10-01 13:11:40 -07:00
Justin Bertram 01afb572bc ARTEMIS-5072 support non-paged management results 2024-10-01 13:11:40 -07:00
Justin Bertram 022ec167cf ARTEMIS-5071 align naming for management option syntax
This commit aligns the naming for the management option syntax but also
retains support for the old naming.
2024-10-01 13:11:40 -07:00
Justin Bertram a89c452ab7 ARTEMIS-5073 formatting error of AMQ601771 audit log event 2024-10-01 13:15:40 -05:00
Justin Bertram 7320db7e51 ARTEMIS-5057 fill in missing config index + other doc updates 2024-10-01 12:10:10 +01:00
Jean-Pascal Briquet 8fc6f09195 ARTEMIS-5063 messageMoved addition in ActiveMQServerMessagePlugin 2024-09-25 21:59:02 -04:00
Clebert Suconic 30c5e63e0b ARTEMIS-5066 Disable Divert on Mirror Target 2024-09-25 21:57:45 -04:00
Clebert Suconic b084eac71d ARTEMIS-5065 Remove Mirrored Properties on send for OpenWire and Core 2024-09-25 21:57:20 -04:00
Clebert Suconic 1d1f03ad5e ARTEMIS-4971 Warning on Unacked messages through mirror AckManager 2024-09-25 09:52:37 -04:00
Justin Bertram 9bb63b656f ARTEMIS-5042 don't throw Exception when clearing cluster-connection bindings
Throwing an exception when clearing the bindings when a
cluster-connection is closed short-circuits the clearing (and closing)
process. This commit fixes that by simply logging the failure to clear
and continues on.

No new tests are added with this commit. It relies on existing tests.
2024-09-23 12:30:53 -07:00
Clebert Suconic f92a846c21 ARTEMIS-5038 Mirrored ACKs are broken if using multiple priorities on producers
PriorityLinkedList has multiple sub-lists, before this commit PriorityLinkedList::setNodeStore would set the same node store between all the lists.
When a removeWithID was called for an item on list[0] the remove from list[4] would always succeed first. This operation would work correctly most of the time except
when tail and head is being used. Many NullPointerExceptions would be seen while iterating on the list for remove operations, and the navigation would be completely broken.

A test was added to PriorityLinkedListTest to make sure the correct lists were used however I was not able to reproduce the NPE condition in that test.
AccumulatedInPageSoakTest reproduced the exact condition for the NPE when significant load is used.
2024-09-23 11:48:24 -04:00
Justin Bertram 7882c92e5d ARTEMIS-5049 add detailed logging for auth caches 2024-09-19 13:36:08 -07:00
Justin Bertram 90300285c7 ARTEMIS-5052 hash authentication cache keys
Existing tests should suffice to validate this change.
2024-09-19 11:55:03 -07:00
Justin Bertram d9d84f814c ARTEMIS-5048 use java.util.Base64
We've traditionally used org.apache.activemq.artemis.utils.Base64 for
Base64 encoding/decoding. This implementation is based on public domain
code from http://iharder.net/base64.

In Java 8 java.util.Base64 was introduced. I assumed we hadn't switched
to this implementation for performance reasons so I created a simple
JMH-based test to compare the two implementations and it appears to me
that java.util.Base64 is significantly faster than our current
implementation. Using the JDK's class will simplify our code and
improve performance. Also, it should be 100% backwards compatible
since Base64 encoding/decoding is standardized.
2024-09-18 12:15:14 -07:00
Justin Bertram b79db8ed66 ARTEMIS-4781 AMQP message leaking large message file
When an AMQP message is sent over a cluster bridge it is embedded into a
Core message. If the size of the AMQP message is barely beneath the
minLargeMessageSize then the Core message in which the AMQP message is
embedded will become a large message. The on the bridge target when the
embedded AMQP message is extracted from the large Core message it will
not be considered "large." In this situation the file for the large Core
message will leak.

Thanks to Erwin Dondorp for the test. I renamed and refactored it a bit,
but the fundamentals came from Erwin.
2024-09-17 14:42:37 +01:00
Justin Bertram dc64d9be78 ARTEMIS-5045 add test + polish 2024-09-16 10:17:03 +01:00
fogninid 91ddc6a2e7 ARTEMIS-5045 don't change the Micrometer MeterRegistry config
For embedded use-cases the Micrometer MeterRegistry may be passed in
from the application and used for other meters unrelated to the broker.
Therefore, the broker should not change the config of the MeterRegistry
(e.g. by adding common tags to all meters) as the config change(s) may
be incompatible with the needs of the embedding application.
2024-09-16 10:17:03 +01:00
Justin Bertram 46c7cb445c ARTEMIS-4182 support client ID config on bridges
Allow the client ID to be configured on normal bridge as well as
cluster-connection bridges. This makes the bridge connection easier to
identify on the target broker.
2024-09-10 16:46:20 +01:00
Justin Bertram defa911143 ARTEMIS-5028 use a default filter when none is specified for mngmnt ops
This is a small usability improvement for management whereby
invocations of some operations no longer require JSON boilerplate. It
impacts the following operations on the ActiveMQServerControl:

 - listConnections
 - listSessions
 - listAddresses
 - listQueues
 - listConsumers
 - listProducers
2024-09-05 12:04:41 -04:00
Robbie Gemmell 9133cdb466 ARTEMIS-4962: add test, clarify some related comments 2024-09-03 13:52:10 -05:00
Justin Bertram d929c5dd66 ARTEMIS-4962 mitigate NPE in FilterImpl 2024-09-03 13:52:10 -05:00
Justin Bertram 306dfc9327 ARTEMIS-4957 remove unused variables in Redistributor 2024-09-02 14:53:14 +01:00