This is an automated email from the ASF dual-hosted git repository.

cshannon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new ba73f37574 Update docs and default configs for advisory topics (#2055)
ba73f37574 is described below

commit ba73f37574dc6949ac8171cbc907979f1ebdb4e8
Author: Christopher L. Shannon <[email protected]>
AuthorDate: Fri May 29 09:32:40 2026 -0400

    Update docs and default configs for advisory topics (#2055)
---
 SECURITY.md                                               |  2 ++
 .../org/apache/activemq/security/jaas-broker.xml          | 10 ++++++++--
 assembly/src/release/conf/activemq.xml                    | 15 ++++++++++++++-
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/SECURITY.md b/SECURITY.md
index 7f82baf278..bd1f578456 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -55,6 +55,8 @@ Users are advised to secure their environments
 
 8. Limit inbound and outbound network connectivity to and from an ActiveMQ 
server.
 
+9. Normal users need permission to create advisory topics but should generally 
**not** be given permission to read/write to those topics as those messages are 
meant for admins. A notable exception is for temporary destination advisory 
topics. For more information see the authorization section 
[here](https://activemq.apache.org/components/classic/documentation/security#authorization).
 
+
 ## ActiveMQ Security Improvement Project
 
 The Apache ActiveMQ team has initiated a security hardening project to move 
from a default configuration that is geared for developer testing and learning 
to a secured-by-default stance.
diff --git 
a/activemq-unit-tests/src/test/resources/org/apache/activemq/security/jaas-broker.xml
 
b/activemq-unit-tests/src/test/resources/org/apache/activemq/security/jaas-broker.xml
index c36fec53e6..246921584f 100644
--- 
a/activemq-unit-tests/src/test/resources/org/apache/activemq/security/jaas-broker.xml
+++ 
b/activemq-unit-tests/src/test/resources/org/apache/activemq/security/jaas-broker.xml
@@ -45,8 +45,14 @@
               <authorizationEntry topic=">" read="admins" write="admins" 
admin="admins" />
               <authorizationEntry topic="USERS.>" read="users" write="users" 
admin="users" />
               <authorizationEntry topic="GUEST.>" read="guests" 
write="guests,users" admin="guests,users" />
-              
-              <authorizationEntry topic="ActiveMQ.Advisory.>" read="*" 
write="guests,users" admin="guests,users"/>
+
+              <!-- Grant all users the ability to create/delete advisory 
destinations
+               but only admins read/write -->
+              <authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" 
write="admins" admin="guests,users"/>
+
+              <!-- All users need full access to temporary destination 
advisories -->
+              <authorizationEntry topic="ActiveMQ.Advisory.TempQueue" read="*" 
write="*" admin="*"/>
+              <authorizationEntry topic="ActiveMQ.Advisory.TempTopic" read="*" 
write="*" admin="*"/>
             </authorizationEntries>
             
             <!-- let's assign roles to temporary destinations. comment this 
entry if we don't want any roles assigned to temp destinations  -->
diff --git a/assembly/src/release/conf/activemq.xml 
b/assembly/src/release/conf/activemq.xml
index d5658cd7f4..db176d4485 100644
--- a/assembly/src/release/conf/activemq.xml
+++ b/assembly/src/release/conf/activemq.xml
@@ -73,6 +73,17 @@
                  in bin/env (an empty value blocks ObjectMessage 
deserialization
                  entirely; specify only packages you explicitly trust).
 
+            NOTE ABOUT ADVISORY TOPICS:
+              1. All users need permission to create ActiveMQ.Advisory 
destinations,
+                 which is given by the "admin" acl. However, normal users 
should
+                 generally NOT be given access to read/write for advisories 
(except temp)
+                 as those messages are meant for admin users.
+              2. A notable exception to number 1 is regular users should be 
given access to
+                 advisories for temporary destinations because 
ActiveMQConnection uses those advisories.
+              3. In addition, dynamic network connectors use advisories to 
determine
+                 consumer demand so the users that will be used to create 
bridges need access
+                 consumer and virtual destination consumer advisories.
+
             For more information, see:
               https://activemq.apache.org/security
         -->
@@ -86,7 +97,9 @@
                         <authorizationEntries>
                             <authorizationEntry queue=">" read="admins" 
write="admins" admin="admins" />
                             <authorizationEntry topic=">" read="admins" 
write="admins" admin="admins" />
-                            <authorizationEntry topic="ActiveMQ.Advisory.>" 
read="admins,users" write="admins,users" admin="admins,users" />
+                            <authorizationEntry topic="ActiveMQ.Advisory.>" 
read="admins" write="admins" admin="admins,users" />
+                            <authorizationEntry 
topic="ActiveMQ.Advisory.TempQueue" read="admins,users" write="admins,users" 
admin="admins,users"/>
+                            <authorizationEntry 
topic="ActiveMQ.Advisory.TempTopic" read="admins,users" write="admins,users" 
admin="admins,users"/>
                         </authorizationEntries>
                     </authorizationMap>
                 </map>


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