Hello
    I'm trying to get the ActiveMQ authorizationPlugin to work. I'm using
the basic jaasAuthenticationPlugin configuration="activemq-domain"
properties logon. My activemq.xml, login.conf, users.properties and
groups.properties are all in my <AMQ_HOME>/conf directory. My activmq.xml is
only slightly different for the example on the site. I have removed jetty,
camel and the commandAgent. I'm running AMQ 5.0.0 on JDK 1.5.0_14-b03. I
delete <AMQ_HOME>/data/localhost between each run to make sure I come up
clean. Everything works... up to a point.

    If I run without any defined destinations (queues or topics) everything
works. Users with authority can access the dynamically created queues. Bad
users and bad passwords fail.

   The problem is I need to run with defined destinations. When I add the
following to my activemq.xml:
        <destinations>
            <queue physicalName="wileJmsQueryQueue"/>
        </destinations>

    I get the following in the log:
14:11:50,731 | DEBUG | ActiveMQ Journal Checkpoint Worker |
AMQPersistenceAdapter    | tore.amq.AMQPersistenceAdapter  322 | Checkpoint
started.
14:11:50,733 | DEBUG | ActiveMQ Journal Checkpoint Worker |
AMQPersistenceAdapter    | tore.amq.AMQPersistenceAdapter  354 | Checkpoint
done.
14:11:50,921 | DEBUG | main       | AbstractRegion           |
q.broker.region.AbstractRegion  112 | Adding destination:
queue://wileJmsQueryQueue
14:11:50,923 | INFO  | main       | KahaStore                |
e.activemq.kaha.impl.KahaStore  448 | Kaha Store using data directory
/data/apache-activemq-5.0.0/data/localhost/kr-store/data
14:11:50,986 | DEBUG | Checkpoint: queue://wileJmsQueryQueue |
AMQMessageStore          | vemq.store.amq.AMQMessageStore  328 | Doing batch
update... adding: 0 removing: 0
14:11:50,987 | DEBUG | Checkpoint: queue://wileJmsQueryQueue |
AMQMessageStore          | vemq.store.amq.AMQMessageStore  366 | Batch
update done.
14:11:50,993 | DEBUG | main       | AMQMessageStore          |
vemq.store.amq.AMQMessageStore  266 | flush starting ...
14:11:51,014 | DEBUG | main       | AbstractRegion           |
q.broker.region.AbstractRegion  112 | Adding destination:
topic://ActiveMQ.Advisory.Queue
14:11:51,025 | INFO  | main       | BrokerService            |
.activemq.broker.BrokerService  413 | Using Persistence Adapter:
AMQPersistenceAdapter(/data/apache-activemq-5.0.0/data/localhost)
14:11:51,029 | DEBUG | main       | AMQMessageStore          |
vemq.store.amq.AMQMessageStore  266 | flush starting ...
14:11:51,030 | ERROR | main       | BrokerService            |
.activemq.broker.BrokerService  439 | Failed to start ActiveMQ JMS Message
Broker. Reason: java.lang.SecurityException: User is not authenticated.
java.lang.SecurityException: User is not authenticated.
    at
org.apache.activemq.security.AuthorizationBroker.addDestination(AuthorizationBroker.java:52)
    at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
    at
org.apache.activemq.broker.region.AbstractRegion.start(AbstractRegion.java:93)
    at
org.apache.activemq.broker.region.RegionBroker.start(RegionBroker.java:182)
    at
org.apache.activemq.broker.jmx.ManagedRegionBroker.start(ManagedRegionBroker.java:103)
    at
org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:112)
    at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:153)
    at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:153)
    at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:153)
    at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:153)
    at
org.apache.activemq.broker.MutableBrokerFilter.start(MutableBrokerFilter.java:163)
    at
org.apache.activemq.broker.BrokerService.start(BrokerService.java:422)
    at
org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:46)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
    at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
    at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
    at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
    at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
    at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
    at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
    at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
    at
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
    at
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
    at
org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:91)
    at
org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:51)
    at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
    at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)
    at
org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:112)
    at
org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:74)
    at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:51)
    at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:104)
    at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:51)
    at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.activemq.console.Main.runTaskClass(Main.java:222)
    at org.apache.activemq.console.Main.main(Main.java:106)
14:11:51,033 | INFO  | main       | faultListableBeanFactory |
t.DefaultSingletonBeanRegistry  285 | Destroying singletons in
[EMAIL PROTECTED]:
defining beans
[org.springframework.beans.factory.config.PropertyPlaceholderConfigurer,org.apache.activemq.xbean.XBeanBrokerService];
root of factory hierarchy
14:11:51,048 | INFO  | ActiveMQ ShutdownHook | BrokerService            |
.activemq.broker.BrokerService  448 | ActiveMQ Message Broker (localhost,
null) is shutting down

    Note that the broker shuts down.

    I've tried looking through some AMQ code and the xsd to see if I'm
missing something in the configuration and I'm at a loss. My activemq.xml
(with destinations) is below. Any thoughts will be appreciated.

Thanks
Tom

<beans
        xmlns="http://www.springframework.org/schema/beans";
        xmlns:amq="http://activemq.org/config/1.0";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
      http://activemq.org/config/1.0
http://activemq.apache.org/schema/activemq-core-5.0.0.xsd
      http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd";>

    <!-- Allows us to use system properties as variables in this
configuration file -->
    <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

    <broker xmlns="http://activemq.org/config/1.0"; brokerName="localhost"
dataDirectory="${activemq.base}/data">
        <destinations>
            <queue physicalName="wileJmsQueryQueue"/>
        </destinations>
        <!-- The transport connectors ActiveMQ will listen to -->
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
            <transportConnector name="ssl" uri="ssl://localhost:61617"/>
            <transportConnector name="stomp" uri="stomp://localhost:61613"/>
            <transportConnector name="xmpp" uri="xmpp://localhost:61222"/>
        </transportConnectors>

        <!-- The store and forward broker networks ActiveMQ will listen to
-->
        <networkConnectors>
            <networkConnector name="default-nc" uri="multicast://default"/>
        </networkConnectors>

        <plugins>
            <!--  use JAAS to authenticate using the login.config file on
the classpath to configure JAAS -->
            <jaasAuthenticationPlugin configuration="activemq-domain"/>
            <!--  lets configure a destination based authorization mechanism
-->
            <authorizationPlugin>
                <map>
                    <authorizationMap>
                        <authorizationEntries>
                            <authorizationEntry queue=">" read="all"
write="all" admin="all"/>
                            <authorizationEntry topic="ActiveMQ.Advisory.>"
read="all" write="all" admin="all"/>
                        </authorizationEntries>
                        <tempDestinationAuthorizationEntry>
                            <tempDestinationAuthorizationEntry read="all"
write="all" admin="all"/>
                        </tempDestinationAuthorizationEntry>
                    </authorizationMap>
                </map>
            </authorizationPlugin>
        </plugins>
    </broker>
</beans>


   

   

-- 
View this message in context: 
http://www.nabble.com/Secutiry-and-Predefined-Destinations-tp17370190s2354p17370190.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to