In my previous example there is an error, I meant:

      <connection-router name="allow-privileged-users">
            <key-type>USER_NAME</key-type>
            <local-target-filter>^(foo|too)$</local-target-filter>
      </connection-router>

      <connection-router name="deny-privileged-users">
            <key-type>USER_NAME</key-type>
            <local-target-filter>^(?!foo$|too$).*$</local-target-filter>
      </connection-router>

      <acceptor name="internal">tcp://
10.0.0.1:61616?router=allow-privileged-users.
<http://10.0.0.1:61616/?router=allow-privileged-users.>..

      <acceptor name="external">tcp://
0.0.0.0:61616?router=deny-privileged-users.
<http://0.0.0.0:61616/?router=deny-privileged-users.>..

Domenico

On Thu, 17 Apr 2025 at 15:24, Domenico Francesco Bruscino <
bruscin...@gmail.com> wrote:

> Yes, you can use a connection-router to allow only the connections that
> match the local-target-filter, i.e.
>
>       <connection-router name="allow-privileged-users">
>             <key-type>USER_NAME</key-type>
>             <local-target-filter>^(foo|too)$</local-target-filter>
>       </connection-router>
>
>       <connection-router name="deny-privileged-users">
>             <key-type>SOURCE_IP</key-type>
>             <local-target-filter>^(?!foo$|too$).*$</local-target-filter>
>       </connection-router>
>
>       <acceptor name="internal">tcp://
> 10.0.0.1:61616?router=allow-privileged-users...
>
>       <acceptor name="external">tcp://
> 0.0.0.0:61616?router=deny-privileged-users...
>
> Domenico
>
>
>
> On Thu, 17 Apr 2025 at 13:55, Vilius Šumskas
> <vilius.sums...@rivile.lt.invalid> wrote:
>
>> I'm trying to wrap my head around how connection router functionality
>> works.
>>
>> In my case, I already have two acceptors. SSL protected and externally
>> exposed one, which should be used only by the external unprivileged users,
>> and internal one on different AMQP port, which should be used by the
>> privileged internal users. If I understand correctly, that external
>> acceptor should be configured in such a way, that it allow all users,
>> except for few privileged ones. Since we are using
>> ActiveMQBasicSecurityManager I probably cannot use security domain here,
>> but looking through documentation, I should be able to use redirection on a
>> specific acceptor with key-type USER_NAME, right?
>>
>> --
>>     Vilius
>>
>> -----Original Message-----
>> From: Domenico Francesco Bruscino <bruscin...@gmail.com>
>> Sent: Wednesday, April 16, 2025 9:27 AM
>> To: users@activemq.apache.org
>> Subject: Re: IP address whitelisting for Artemis users
>>
>> Hi Villus,
>>
>> you can create an acceptor that allows only connections from specific
>> users by setting a per-acceptor security domain[1] and a connection
>> router[2] to reject connections with a source IP address that doesn't match
>> your filter, i.e.
>>
>>       <connection-router name="privileged-ip-filter">
>>             <key-type>SOURCE_IP</key-type>
>>
>>
>> <local-target-filter>^192\.168\.10\.1|192\.168\.10\.2$</local-target-filter>
>>       </connection-router>
>>
>> [1]
>>
>> https://activemq.apache.org/components/artemis/documentation/latest/security.html#per-acceptor-security-domains
>> [2]
>>
>> https://activemq.apache.org/components/artemis/documentation/latest/connection-routers.html#connection-routers
>>
>> Regards,
>> Domenico
>>
>>
>> On Tue, 15 Apr 2025 at 22:24, Vilius Šumskas 
>> <vilius.sums...@rivile.lt.invalid>
>> wrote:
>>
>> > Hi,
>> >
>> > is there a way to somehow limit which IP Artemis user is allowed to
>> > connect from? We had instances where privileged user dedicated to
>> > internal usage only was used in externalized Java services. I want to
>> > protect these users from being used where they should not be.
>> >
>> > --
>> >    Best Regards,
>> >     Vilius
>> >
>> >
>>
>

Reply via email to