Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-3625

NullPointer Exceptions when networked broker sends certificate with an invalid user name

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 5.5.1
    • 5.6.0
    • Broker
    • None
    • Patch Available

    Description

      Couple NPEs pop out when a connecting one broker to another using authentication if the authentication fails:

      WARN | Failed to add Connection ID:Susan-Javureks-MacBook-Pro-3.local-53150-1322608354523-5:1, reason: java.lang.SecurityException: User name [null] or password is invalid. No user for client certificate: CN=Dave Stanley, OU=FuseSource, O=Progress, L=Unknown, ST=MA, C=US
      WARN | Async error occurred: java.lang.SecurityException: User name [null] or password is invalid. No user for client certificate: CN=Dave Stanley, OU=FuseSource, O=Progress, L=Unknown, ST=MA, C=US
      java.lang.SecurityException: User name [null] or password is invalid. No user for client certificate: CN=Dave Stanley, OU=FuseSource, O=Progress, L=Unknown, ST=MA, C=US
      at org.apache.activemq.security.JaasCertificateAuthenticationBroker.addConnection(JaasCertificateAuthenticationBroker.java:102)
      at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85)
      at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91)
      at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:707)
      at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:77)
      at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139)
      at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:318)
      at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:181)
      at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
      at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
      at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
      at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      at org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
      at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:223)
      at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:205)
      at java.lang.Thread.run(Thread.java:680)
      Caused by: javax.security.auth.login.FailedLoginException: No user for client certificate: CN=Dave Stanley, OU=FuseSource, O=Progress, L=Unknown, ST=MA, C=US
      at org.apache.activemq.jaas.CertificateLoginModule.login(CertificateLoginModule.java:93)
      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:597)
      at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
      at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
      at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
      at org.apache.activemq.security.JaasCertificateAuthenticationBroker.addConnection(JaasCertificateAuthenticationBroker.java:87)
      ... 15 more
      WARN | Async error occurred: java.lang.NullPointerException
      java.lang.NullPointerException

      at org.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:512)
      at org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)
      at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:318)
      at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:181)
      at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
      at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
      at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
      at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      at org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
      at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:223)
      at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:205)
      at java.lang.Thread.run(Thread.java:680)
      WARN | Async error occurred: java.lang.NullPointerException
      java.lang.NullPointerException

      at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:551)
      at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
      at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:318)
      at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:181)
      at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
      at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
      at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
      at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      at org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
      at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:223)
      at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:205)
      at java.lang.Thread.run(Thread.java:680)

      In this case the actual problem is the certificate doesn't match the configured password, but the two NPEs after this exception don't look good.

      Attachments

        1. 0001-Avoid-NPE.patch
          19 kB
          Stanley J. Lewis

        Activity

          People

            tabish Timothy A. Bish
            slewis Stanley J. Lewis
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: