> In few word what I’d like to achieve is to let Artemis instantiate and
use a custom ActiveMQSecurityManager provided through a configuration
parameter. Is there a way or I must patch the Artemis code to allow the
ActiveMQSecurityManager pluggability?

Currently there is no way to use a custom ActiveMQSecurityManager
implementation via the XML configuration. The broker would need to be
modified to allow this behavior (and I think that would be a valid
enhancement).

For what it's worth, using a custom ActiveMQSecurityManager implementation
is a trivial matter for embedded use-cases.


Justin

On Wed, Sep 11, 2019 at 9:28 AM Modanese, Riccardo
<riccardo.modan...@eurotech.com.invalid> wrote:

> Hi, unfortunately I cannot rely on a security repository and the users and
> ACLs profiles could be thousands.
>
> My idea is to replace the ActiveMQJAASSecurityManager with my own custom
> ActiveMQSecurityManager implementation.
> But I didn’t find a way.
> It seems that there is no other way than specifying a jaas-security tag in
> the bootstrap.xml configuration file (<jaas-security domain="activemq"/>).
> If I remove the tag, or I try to change the DTO instance (with the
> appropriate annotation in the new DTO file itself), I get a xml validation
> schema error.
> From my attempts there is no way to remove the jaas-security tag.
>
> In few word what I’d like to achieve is to let Artemis instantiate and use
> a custom ActiveMQSecurityManager provided through a configuration parameter.
> Is there a way or I must patch the Artemis code to allow the
> ActiveMQSecurityManager pluggability?
>
>
> Il giorno 28 ago 2019, alle ore 05:23, yw yw <wy96...@gmail.com<mailto:
> wy96...@gmail.com>> ha scritto:
>
> Yes, it would check every time a client publishes a message or subscribes
> an address.
>
> From my understanding, SecuritySettingPlugin should meet your requirements.
> You can save the "securityRepository" passed by "SecuritySettingPlugin::
> setSecurityRepository" in your custom SecuritySettingPlugin. When you
> receive a notification that user is added/removed,  you can call
> securityRepository::addMatch/removeMatch/swap to change ACL in matching
> address.
>
>
> Modanese, Riccardo <riccardo.modan...@eurotech.com.invalid<mailto:
> riccardo.modan...@eurotech.com.invalid>> 于2019年8月27日周二
> 下午11:12写道:
>
> I think the SecuritySettingPlugin will not solve my issue but an
> ActiveMQSecurityManager3 custom implementation could be.
>
> So I tried to plug an ActiveMQSecurityManager3 implementation but without
> any success.
> From my understanding this plugin should be defined into bootstrap.xml but
> unfortunately I found no way to replace the jaas-security tag with another
> one pointing to my configuration DTO (the xsd doesn’t provide alternative
> tag to jaas-security)
>
> Anyway, just to be sure if the ActiveMQSecurityManager3 api could fit my
> needs,  is the method validateUserAndRole called before every
> publish/subscribe?
>
> Il giorno 26 ago 2019, alle ore 18:00, Christopher Shannon <
> christopher.l.shan...@gmail.com<mailto:christopher.l.shan...@gmail.com>>
> ha scritto:
>
> You might need to write some custom code to do what you want and you
> could
> try a custom Security plugin.
> See the API and Java docs for the security setting plugin:
>
>
> https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/SecuritySettingPlugin.java
>
> If you need even more control you can create your own SecurityManager and
> register it with the broker.  The interface to extend is:
>
>
> https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/ActiveMQSecurityManager3.java
>
> The validateUserAndRole() method is where you do your ACL checks
>
> A default implementation that delegates to a JAAS module is including in
> the broker already which you can use as an example or to extend:
>
>
> https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/ActiveMQJAASSecurityManager.java
>
> On Mon, Aug 26, 2019 at 8:01 AM Modanese, Riccardo
> <riccardo.modan...@eurotech.com.invalid> wrote:
>
> I already read this page and I wasn’t able to find any helpful
> information.
> In our use case each user has ACL depending on the username itself.
> Moreover a user can be added at runtime and the broker must be able to
> create and handle correctly the ACL also for the new created user.
>
> So, at the end, what I need is the capability of creating ACL
> programmatically and keep them in a session in order to be used every
> time
> a client publishes a message or subscribes an address.
> In ActiveMQ 5 this was possible ( [1] - [2] ) by creating a
> DefaultAuthorizationMap object, but I cannot find a similar object in
> Artemis
>
> [1]
>
>
> https://github.com/eclipse/kapua/blob/develop/broker-core/src/main/java/org/eclipse/kapua/broker/core/plugin/KapuaSecurityBrokerFilter.java#L683
> [2]
>
>
> https://github.com/eclipse/kapua/blob/develop/broker-core/src/main/java/org/eclipse/kapua/broker/core/plugin/KapuaSecurityBrokerFilter.java#L557
>
>
> Il giorno 26 ago 2019, alle ore 13:43, Christopher Shannon <
> christopher.l.shan...@gmail.com<mailto:christopher.l.shan...@gmail.com
>
> ha scritto:
>
> All of the info you should need to get started should be here:
>
>
>
> https://activemq.apache.org/components/artemis/documentation/latest/security.html
>
> On Mon, Aug 26, 2019 at 6:24 AM Modanese, Riccardo
> <riccardo.modan...@eurotech.com.invalid> wrote:
>
> Hello,
>  In our ActiveMQ 5.x security plugin code we are enforcing ACL
> programmatically so I’m investigating how to migrate our current ACL
> from
> ActiveMQ 5.x to Artemis.
>
> I took a look into Artemis source code and I didn’t find any similar
> object to those present in ActiveMQ 5.x (E.g.
> org.apache.activemq.security.AuthorizationMap,
> org.apache.activemq.security.AuthorizationEntry, ...)
>
> Can you point me to the right direction?
>
>
>
>
>
>
>

Reply via email to