Active Mq : How to stop active mq from creating queue which doesnt exist

流过昼夜 提交于 2020-02-05 07:03:24

问题


How to stop active mq from creating queue which doesnt exist? I am using Active mq for storing message but active Mq creates a queue if itbdoewnt exist. I dont want it to create a queue if it doesnt exist


回答1:


you need to limit destinations creation by setting an authorizationPlugin :

only users with admins role can send and read messages and create destinations

only users with producers role can send messages

only users with consumers role can read messages

add to activemq.xml :

    <plugins>
        <jaasAuthenticationPlugin configuration="activemq"/>

       <authorizationPlugin>
           <map>
             <authorizationMap>
               <authorizationEntries>            
                 <authorizationEntry queue="test" read="consumers" write="producers" admin="admins" />
                 <authorizationEntry topic="ActiveMQ.Advisory.>" read="all" write="all" admin="all"/>
                 <authorizationEntry queue="ActiveMQ.>.>" read="admins" write="admins" admin="admins"/>
               </authorizationEntries>
               <tempDestinationAuthorizationEntry>
                 <tempDestinationAuthorizationEntry read="admins" write="admins" admin="admins"/>
               </tempDestinationAuthorizationEntry>
            </authorizationMap>
          </map>
       </authorizationPlugin>
    </plugins>

add to login.config :

activemq {
    org.apache.activemq.jaas.PropertiesLoginModule required
        org.apache.activemq.jaas.properties.user="users.properties"
        org.apache.activemq.jaas.properties.group="groups.properties"
        reload=true;
};

add to users.properties :

q_consumers=q_consumers_pwd
q_producers=q_producers_pwd
admin=admin

add to groups.properties :

admins=admin
consumers=q_consumers
producers=q_producers
all=q_consumers,q_producers,admin

when you create a Connection you have to pass user & pwd :

javax.jms.ConnectionFactory.createConnection(String userName, String password);


来源:https://stackoverflow.com/questions/43664311/active-mq-how-to-stop-active-mq-from-creating-queue-which-doesnt-exist

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!