I've done more research and I think I know better where ActiveMQ would
support my desired feature, and it seems the support isn't quite there. I
think I want to be able to create a plugin that allows me to customize the
behavior of DemandForwardingBridgeSupport.isPermissableDestination(). This
is the code that implements the logic for
networkConnector's excludedDestinations, dynamicallyIncludedDestinations,
and staticallyIncludedDestinations. Unfortunately these don't give me the
flexiblity I need. Is it reasonable to provide a hook
like MessageAuthorizationPolicy.isAllowedToConsume so that I could plugin my
own isPermissableDestination()?

FYI I need a feature where I can deny access to a wild card topic and then
selectively allow access to a specific (non-wildcarded) topic matching the
denied wild card. But I need to do this based on the logged in user on the
connection.

Thanks,
Jim


On Tue, May 25, 2010 at 1:08 PM, Jim Lloyd <jll...@silvertailsystems.com>wrote:

> Can a BrokerFilter be used to message-level authorization of messages sent
> from one broker to another in a network of brokers?
>
> Suppose you have a hub and spoke architecture, where there may be many
> 'spoke brokers' that connect to one hub broker using duplex connections. In
> this topology, we want to have all security policies enforced in the hub
> broker (i.e. assume that spoke brokers can be compromised). We have
> partitioned our topic namespace so that each spoke broker has a well-defined
> subset of topics that it may use. I have implemente a custom
> AuthorizationMap that can prevent a client on one spoke from subscribing to
> topics from another spoke. However, Advisory messages are propagated to all
> brokers, so one can look at the Jetty admin console and see the entire
> namespace of all topics. I'd like to do message-level filtering of
> advisories so that each spoke only sees advisories for its subset of topics.
>
> It appeared to me that Message-Level Authorization would give me the hook I
> need, but I discovered that this applies only to filtering of messages
> between client applications and a broker, whereas I need the filtering on
> the network connection between brokers.
>
> I'm now studying the BrokerFilter interface which seems promising, but I'd
> appreciate it if anyone can save me some time by telling me either that 1)
> no, BrokerFilter can't do this, or 2) yes, BrokerFilter can, and then give
> short outline of how to do it.
>
> Thanks,
> Jim Lloyd
>
>
>

Reply via email to