title: ActiveMQ authentication on Spring Boot
body: <p>I can consume and publish a message to queue without authentication in Spring App via ActiveMQ.</p>
  <pre><code>server.port=9999
  spring.activemq.broker-url=tcp://localhost:61616
  spring.activemq.user=admin
  spring.activemq.password=admin
  spring.activemq.packages.trust-all=true
  </code></pre>
  <p>I deleted user and password line. It works. But I want to take error when deleted following line or when wrong password and username.</p>
  <pre><code>spring.activemq.user=admin
  spring.activemq.password=admin
  </code></pre>
  <p>My authentication is true but it doesn't work.
  
  
  
  </p>
  <pre><code>&lt;bean id=&quot;securityConstraint&quot; class=&quot;org.eclipse.jetty.util.security.Constraint&quot;&gt;
      &lt;property name=&quot;name&quot; value=&quot;BASIC&quot; /&gt;
      &lt;property name=&quot;roles&quot; value=&quot;user,admin&quot; /&gt;
      &lt;!-- set authenticate=false to disable login --&gt;
      &lt;property name=&quot;authenticate&quot; value=&quot;true&quot; /&gt;
  &lt;/bean&gt;
  &lt;bean id=&quot;adminSecurityConstraint&quot; class=&quot;org.eclipse.jetty.util.security.Constraint&quot;&gt;
      &lt;property name=&quot;name&quot; value=&quot;BASIC&quot; /&gt;
      &lt;property name=&quot;roles&quot; value=&quot;admin&quot; /&gt;
       &lt;!-- set authenticate=false to disable login --&gt;
      &lt;property name=&quot;authenticate&quot; value=&quot;true&quot; /&gt;
  &lt;/bean&gt;
  </code></pre>
  <p>How to get an error when Password or username is entered incorrectly? How can I open username and password for Spring boot? (I'm not asking about ActiveMQ web console authentication)
  <strong>activemq.xml :</strong></p>
  <pre><code>&lt;beans
    xmlns=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://activemq.apache.org/schema/core 
    http://activemq.apache.org/schema/core/activemq-core.xsd&quot;&gt;
    
  &lt;!-- Allows us to use system properties as variables in this configuration file --&gt;
  &lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;&gt;
      &lt;property name=&quot;locations&quot;&gt;
          &lt;value&gt;file:${activemq.conf}/credentials.properties&lt;/value&gt;
      &lt;/property&gt;
  &lt;/bean&gt;
  
  
  &lt;bean id=&quot;logQuery&quot; class=&quot;io.fabric8.insight.log.log4j.Log4jLogQuery&quot;
        lazy-init=&quot;false&quot; scope=&quot;singleton&quot;
        init-method=&quot;start&quot; destroy-method=&quot;stop&quot;&gt;
  &lt;/bean&gt;
   &lt;broker xmlns=&quot;http://activemq.apache.org/schema/core&quot; brokerName=&quot;localhost&quot; dataDirectory=&quot;${activemq.data}&quot;&gt;
  
      &lt;destinationPolicy&gt;
          &lt;policyMap&gt;
            &lt;policyEntries&gt;
              &lt;policyEntry topic=&quot;&gt;&quot; &gt;
                  &lt;!-- The constantPendingMessageLimitStrategy is used to prevent
                       slow topic consumers to block producers and affect other consumers
                       by limiting the number of messages that are retained
                       For more information, see:
  
                       http://activemq.apache.org/slow-consumer-handling.html
  
                  --&gt;
                &lt;pendingMessageLimitStrategy&gt;
                  &lt;constantPendingMessageLimitStrategy limit=&quot;1000&quot;/&gt;
                &lt;/pendingMessageLimitStrategy&gt;
              &lt;/policyEntry&gt;
            &lt;/policyEntries&gt;
          &lt;/policyMap&gt;
      &lt;/destinationPolicy&gt;
  
  
      &lt;!--
          The managementContext is used to configure how ActiveMQ is exposed in
          JMX. By default, ActiveMQ uses the MBean server that is started by
          the JVM. For more information, see:
  
          http://activemq.apache.org/jmx.html
      --&gt;
      &lt;managementContext&gt;
          &lt;managementContext createConnector=&quot;false&quot;/&gt;
      &lt;/managementContext&gt;
  
      &lt;!--
          Configure message persistence for the broker. The default persistence
          mechanism is the KahaDB store (identified by the kahaDB tag).
          For more information, see:
  
          http://activemq.apache.org/persistence.html
      --&gt;
      &lt;persistenceAdapter&gt;
          &lt;kahaDB directory=&quot;${activemq.data}/kahadb&quot;/&gt;
      &lt;/persistenceAdapter&gt;
  
  
        &lt;!--
          The systemUsage controls the maximum amount of space the broker will
          use before disabling caching and/or slowing down producers. For more information, see:
          http://activemq.apache.org/producer-flow-control.html
        --&gt;
        &lt;systemUsage&gt;
          &lt;systemUsage&gt;
              &lt;memoryUsage&gt;
                  &lt;memoryUsage percentOfJvmHeap=&quot;70&quot; /&gt;
              &lt;/memoryUsage&gt;
              &lt;storeUsage&gt;
                  &lt;storeUsage limit=&quot;100 gb&quot;/&gt;
              &lt;/storeUsage&gt;
              &lt;tempUsage&gt;
                  &lt;tempUsage limit=&quot;50 gb&quot;/&gt;
              &lt;/tempUsage&gt;
          &lt;/systemUsage&gt;
      &lt;/systemUsage&gt;
  
      &lt;!--
          The transport connectors expose ActiveMQ over a given protocol to
          clients and other brokers. For more information, see:
  
          http://activemq.apache.org/configuring-transports.html
      --&gt;
      &lt;transportConnectors&gt;
          &lt;!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --&gt;
          &lt;transportConnector name=&quot;openwire&quot; uri=&quot;tcp://0.0.0.0:61616?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&quot;/&gt;
          &lt;transportConnector name=&quot;amqp&quot; uri=&quot;amqp://0.0.0.0:5672?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&quot;/&gt;
          &lt;transportConnector name=&quot;stomp&quot; uri=&quot;stomp://0.0.0.0:61613?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&quot;/&gt;
          &lt;transportConnector name=&quot;mqtt&quot; uri=&quot;mqtt://0.0.0.0:1883?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&quot;/&gt;
          &lt;transportConnector name=&quot;ws&quot; uri=&quot;ws://0.0.0.0:61614?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&quot;/&gt;
      &lt;/transportConnectors&gt;
  
      &lt;!-- destroy the spring context on shutdown to stop jetty --&gt;
      &lt;shutdownHooks&gt;
          &lt;bean xmlns=&quot;http://www.springframework.org/schema/beans&quot; class=&quot;org.apache.activemq.hooks.SpringContextHook&quot; /&gt;
      &lt;/shutdownHooks&gt;
      
      
  &lt;/broker&gt;
  
  
  
  
  &lt;!--
      Enable web consoles, REST and Ajax APIs and demos
      The web consoles requires by default login, you can disable this in the jetty.xml file
  
      Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
  --&gt;
  &lt;import resource=&quot;jetty.xml&quot;/&gt;
  </code></pre>