2
respostas

Criar topic com autenticação

Olá, tentei configurar o usuário e senha do ActiveMQ e as devidas permissões, porem não consigo enviar e nem consumir mensagens de uma fila ou tópico.

Seguem as configurações: arquivo activemq.xml

arquivo jndi.properties java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory

use the following property to configure the default connector

java.naming.provider.url = tcp://localhost:61616

use the following property to specify the JNDI name the connection factory

should appear as.

#connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry

register some queues in JNDI using the form

queue.[jndiName] = [physicalName]

queue.financeiro = fila.financeiro

register some topics in JNDI using the form

topic.[jndiName] = [physicalName]

topic.loja = topico.loja

Erro Exception in thread "main" javax.jms.JMSSecurityException: User andrade is not authorized to create: topic://ActiveMQ.Advisory.Connection

2 respostas

Oi Andrade, tudo bem?

Você precisa atribuir funções para permitir a criação de Tópicos Consultivos, a menos que você os desative. Um exemplo do site está abaixo.

<authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/>

http://activemq.apache.org/security.html

Otavio, obrigado pelo retorno! Porem coloquei essa configuração no arquivo activemq.xml só esqueci de anexar na duvida, veja abaixo como esta configurado meu arquivo activemq.xml:

    <plugins>    
          <simpleAuthenticationPlugin anonymousAccessAllowed="false">
            <users>
                <authenticationUser username="admin" password="admin" groups="users,admins"/>
                <authenticationUser username="user" password="senha" groups="users"/>
                <authenticationUser username="guest" password="senha" groups="guests"/>
            </users>
          </simpleAuthenticationPlugin>          
          <authorizationPlugin>
            <map>
              <authorizationMap>
                <authorizationEntries>
                  <authorizationEntry queue="fila.financeiro" read="users" write="users" admin="users,admins" />
                  <authorizationEntry topic="topico.loja" read="users" write="users" admin="users,admins" />
                  <authorizationEntry topic="ActiveMQ.Advisory" read="users,admins" write="users,admins" admin="users,admins"/>
                </authorizationEntries>
                <tempDestinationAuthorizationEntry>
                  <tempDestinationAuthorizationEntry read="admin" write="admin" admin="admin"/>
                </tempDestinationAuthorizationEntry>
              </authorizationMap>
            </map>
        </authorizationPlugin> 
    </plugins>