Hi Jean,

Have you had an opportunity to look into this?

Thanks & Regards,
………………………………………………………………………….
Basavaraj G Dodawad
Sr.Middleware Engineer | MIDDLEWARE-TR

email: basavaraj.doda...@thomsonreuters.com
cell: +919148194944
Escalation 



-----Original Message-----
From: Dodawad, Basavaraj (TR Technology) 
Sent: 01 July 2025 07:38
To: users@activemq.apache.org
Subject: RE: [EXT] Re: ActiveMQ Classic Simple Authentication for Role Based 
Access to Web Console

Thank you, Jean, for your prompt response.
Your assistance is greatly help us achieve our goal.

Thanks & Regards,
………………………………………………………………………….
Basavaraj G Dodawad
Sr.Middleware Engineer | MIDDLEWARE-TR

email: basavaraj.doda...@thomsonreuters.com
cell: +919148194944
Escalation 



-----Original Message-----
From: Jean-Baptiste Onofré <j...@nanthrax.net>
Sent: 01 July 2025 06:32
To: users@activemq.apache.org
Subject: [EXT] Re: ActiveMQ Classic Simple Authentication for Role Based Access 
to Web Console

External Email: Use caution with links and attachments.

Hi

I did that for several users, and I think I blogged about that. Let me find it 
out.

Regards
JB

On Wed, Jun 25, 2025 at 4:16 PM Soosai Nayagam, Alban S. (TR
Technology) <alban.soosainaya...@thomsonreuters.com.invalid> wrote:
>
> Hi All,
> We are relatively new to ActiveMQ classic and are trying to implement role 
> based authentication and authorization using the default Jetty based web 
> console.
> The following SimpleAuthenticationPlugin and authorizationPlugin have been 
> added to the activemq.xml config file:
>
> <plugins>
>             <!-- Simple Authentication Plugin -->
>             <simpleAuthenticationPlugin>
>                 <users>
>
>                     <authenticationUser username="admin" password="admin123" 
> groups="admins"/>
>                      <authenticationUser username="developer" 
> password="dev123" groups="developers"/>
>                      <authenticationUser username="user" password="user123" 
> groups="users"/>
>                     <authenticationUser username="readonly" 
> password="readonly123" groups="users,guests"/>
>
>                 </users>
>             </simpleAuthenticationPlugin>
>
>             <authorizationPlugin>
>                 <map>
>                     <authorizationMap>
>                         <authorizationEntries>
>                             <!-- Admin Group - Full Access to Everything -->
>                             <authorizationEntry admin="admins" read="admins" 
> write="admins" topic=">" />
>                             <authorizationEntry admin="admins" read="admins" 
> write="admins" queue=">" />
>                             <authorizationEntry admin="admins" 
> read="admins" write="admins" topic="ActiveMQ.Advisory.>" />
>
>                             <!-- Developer Group - Development environment 
> access -->
>                             <authorizationEntry read="developers" 
> write="developers" topic="DEV.>" />
>                             <authorizationEntry read="developers" 
> write="developers" queue="DEV.>" />
>                             <authorizationEntry read="developers" 
> write="developers" topic="TEST.>" />
>                             <authorizationEntry read="developers" 
> write="developers" queue="TEST.>" />
>
>                                <!-- Public resources for all authenticated 
> users -->
>                             <authorizationEntry 
> read="users,developers,managers,admins" topic="PUBLIC.>" />
>                             <authorizationEntry 
> read="users,developers,managers,admins" queue="PUBLIC.>" />
>                       </authorizationEntries>
>                     </authorizationMap>
>                 </map>
>             </authorizationPlugin>
>         </plugins>
>
> Also updated the jetty-realm.properties as below:
>
> # Admin users
> admin: admin123, admins
> # Developer users
> developer: dev123, developers
> tester: test123, developers
> user: user123, users
>
> At jetty.xml, the following securityConstraints have been defined:
>
>     <bean id="securityConstraint" 
> class="org.eclipse.jetty.util.security.Constraint">
>         <property name="name" value="BASIC" />
>         <property name="roles" value="users,admins" />
>         <!-- set authenticate=false to disable login -->
>         <property name="authenticate" value="true" />
>     </bean>
>     <bean id="adminSecurityConstraint" 
> class="org.eclipse.jetty.util.security.Constraint">
>         <property name="name" value="BASIC" />
>         <property name="roles" value="admins" />
>          <!-- set authenticate=false to disable login -->
>         <property name="authenticate" value="true" />
>     </bean>
>     <bean id="securityConstraintMapping" 
> class="org.eclipse.jetty.security.ConstraintMapping">
>         <property name="constraint" ref="securityConstraint" />
>         <property name="pathSpec" 
> value="/,/api/*,*.jsp,*.html,*.js,*.css,*.png,*.gif,*.ico" />
>     </bean>
>     <bean id="adminSecurityConstraintMapping" 
> class="org.eclipse.jetty.security.ConstraintMapping">
>         <property name="constraint" ref="adminSecurityConstraint" />
>         <property name="pathSpec" value="*.action" />
>     </bean>
>
> With this setup, the broker is only allowing the admin user to write to the 
> queues and topics through web console. Normal user is not able to write to 
> the queues and topics.
> But when we change the above security constraints as below, it allows the 
> normal user to write to all the queues and topics without regard to the 
> authorization rules defined.
>
>     <bean id="securityConstraintMapping" 
> class="org.eclipse.jetty.security.ConstraintMapping">
>         <property name="constraint" ref="securityConstraint" />
>         <property name="pathSpec" 
> value="/,/api/*,*.jsp,*.html,*.js,*.css,*.png,*.gif,*.ico, 
> /admin/sendMessage/" />
>     </bean>
>     <bean id="adminSecurityConstraintMapping" 
> class="org.eclipse.jetty.security.ConstraintMapping">
>         <property name="constraint" ref="adminSecurityConstraint" />
>         <property name="pathSpec" value="*.action" />
>     </bean>
>
> Can anyone please let me know how to achieve specific role based access 
> through the jetty web console? Is it the usual practive to use Jetty web 
> console for role based access or do we need to use other web consoles such as 
> hawtio or Tomcat for such use cases?
>
>
> Thanks & Regards,
>
> · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 
> · · · · · · · · · · · ·
>
> Alban Soosai Nayagam
>
> Senior Middleware Engineer – MIDDLEWARE-TR
>
> Thomson Reuters
> C 1-437-241-6539
>
> Escalation<https://urldefense.com/v3/__https://trten.sharepoint.com/si
> tes/intr-ihn-service-portfolio/SitePages/IHN-Contact-*26-Escalation(1)
> .aspx__;JQ!!GFN0sa3rsbfR8OLyAw!fnivj1dFaZrtJwBrY52aCrYeT0EzNgJDIZWpD7D
> 8xZOQa7ZCJbXhnLw7hvfoQmUCDe8dH8IbsDi9e5fz2Gr0180q$ >
>
>
>
> This e-mail is for the sole use of the intended recipient and contains 
> information that may be privileged and/or confidential. If you are not 
> an intended recipient, please notify the sender by return e-mail and 
> delete this e-mail and any attachments. Certain required legal entity 
> disclosures can be accessed on our website:
> https://www.thomsonreuters.com/en/resources/disclosures.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@activemq.apache.org
For additional commands, e-mail: users-h...@activemq.apache.org For further 
information, visit: 
https://urldefense.com/v3/__https://activemq.apache.org/contact__;!!GFN0sa3rsbfR8OLyAw!fnivj1dFaZrtJwBrY52aCrYeT0EzNgJDIZWpD7D8xZOQa7ZCJbXhnLw7hvfoQmUCDe8dH8IbsDi9e5fz2Ho-oPno$
 


Reply via email to