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 0604de39d6cc1f2946368d5775a9ef4ff753cbbf.
2024-12-16 08:55:55 -06:00
Justin Bertram
6b6ae242ed
Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 918ef0efbe62ed5c64a0c2f8adc8f0cc3aba35d2.
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:
177e6820b541e0a71b952eebf503a4d2235910c5
e34fd09ce325a551bf2eaf579854e2e107435502
e065d25b6fb4cdfa7f5b72afd52d6f4771b50634
af9bd7b84aad32e4fe30f2c8909e51cf7300b475
f4bdacbc4cb46b308f80391940890c74bf111ecd
74951d9221b29336c6575de9390a8557114e10eb
fe0ca4d84fc587b701e4b83ae8e5f2240c222842
b08b91a32faa89cdff4403b532e60d96084f2d4a
85857ab8eb1b1eca2498306239740e0e39d2acd4
e02ec69021f24220c0b91b8324382c9630415276
bf9f6d213bf6b3bf4fd7e15430ada8c9954e69ce
2d806807b8d9006cf642392ad5da9878394cebae
52a4157bbb898ee8fd8d7f13fffca71a9c368630
53bb3ea1833cddda6c2ded70d3149286c8207570
d5f152c7254c378707b12ad4a0b798fdb8cb7b10
b3529dcea428fa697aacbceacc6641e47cfb74ba
246bf083914c7acbb05a7fe0904c471331242c39
8a04ee07de8a7c863daf37a07a1176131151caa0
6cb68f2ce923ea3c2400c21967b2003175c8a0f4
9873fccf744c0cb0a25dd905fab67ea52ef7aa7d

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