Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-4119

[Jaas, Karaf] under load periodically get exception javax.security.auth.login.LoginException: Can't get user XXX roles: null

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • jboss-fuse-6.2.1
    • jboss-fuse-6.2
    • Karaf
    • None
    • % %

      Under load periodically get the following exception

      Caused by: javax.security.auth.login.LoginException: Can't get user jdoe roles: null
      	at org.apache.karaf.jaas.modules.ldap.LDAPLoginModule.doLogin(LDAPLoginModule.java:397)
      	at org.apache.karaf.jaas.modules.ldap.LDAPLoginModule.login(LDAPLoginModule.java:165)
      	at org.apache.karaf.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:83)[karaf-jaas-boot.jar:]
      	at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_75]
      	at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_75]
      	at javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)[:1.7.0_75]
      	at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)[:1.7.0_75]
      	at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)[:1.7.0_75]
      	at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)[:1.7.0_75]
      	at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_75]
      	at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)[:1.7.0_75]
      	at javax.security.auth.login.LoginContext.login(LoginContext.java:595)[:1.7.0_75]
      	at org.apache.activemq.security.JaasAuthenticationBroker.authenticate(JaasAuthenticationBroker.java:84)[171:org.apache.activemq.activemq-osgi:5.11.0.redhat-620143]
      	... 15 more
      

      The user and password is correct and login appears to complete successfully many times BUT periodically throws the exception above. Issue only occurs sometimes under load.

      From Debugging is seems the call to LDAPCache.getCache(env) at line 328 (below) in org.apache.karaf.jaas.modules.ldap.LDAPLoginModule can periodically return NULL causing a NullPointerException that results in the previous exception above.

      String[] roles = LDAPCache.getCache(env).getUserRoles(userDN, new Callable<String[]>()
      

        1. simple.tar.gz
          5 kB
          Patrick Fox
        2. my-ldap.xml
          2 kB
          Patrick Fox

            bicollin1@redhat.com William Collins (Inactive)
            rhn-support-pfox Patrick Fox (Inactive)
            Josef Ludvicek Josef Ludvicek (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: