title: Jetty LdapLoginModule: Login Failure: all modules ignored
body: <p>I'm getting the below on trying to submit a login form. Does anyone know what causes this? Thanks.</p>
  
  <pre><code>2012-10-13 13:11:46.300:INFO:oejpjs.LdapLoginModule:Searching for users with filter: '(&amp;(objectClass={0})({1}={2}))' from base dn: ou=people,dc=my-domain,dc=com
  2012-10-13 13:11:46.307:INFO:oejpjs.LdapLoginModule:Found user?: true
  2012-10-13 13:11:46.311:WARN:oejpj.JAASLoginService:
  javax.security.auth.login.LoginException: Login Failure: all modules ignored
  at javax.security.auth.login.LoginContext.invoke(LoginContext.java:921)
  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.eclipse.jetty.plus.jaas.JAASLoginService.login(JAASLoginService.java:238)
  at org.eclipse.jetty.security.authentication.FormAuthenticator.validateRequest(FormAuthenticator.java:209)
  at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:491)
  at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
  at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
  at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
  at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
  at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
  at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
  at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
  at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
  at org.eclipse.jetty.server.Server.handle(Server.java:365)
  at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
  at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
  at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
  at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
  at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
  at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
  at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
  at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
  at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
  at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
  at java.lang.Thread.run(Thread.java:680)
  </code></pre>
  
  <p>FWIW this is some of the peripheral configuration:</p>
  
  <p>jetty.xml:</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;Configure&gt;
      &lt;Call name="addBean"&gt;
          &lt;Arg&gt;
              &lt;New class="org.eclipse.jetty.plus.jaas.JAASLoginService"&gt;
                  &lt;Set name="name"&gt;ldap&lt;/Set&gt;
                  &lt;Set name="loginModuleName"&gt;ldaploginmodule&lt;/Set&gt;
              &lt;/New&gt;
          &lt;/Arg&gt;
      &lt;/Call&gt;
  &lt;/Configure&gt;
  </code></pre>
  
  <p>ldap.conf:</p>
  
  <pre><code>ldaploginmodule {
      org.eclipse.jetty.plus.jaas.spi.LdapLoginModule required
      debug="true"
      contextFactory="com.sun.jndi.ldap.LdapCtxFactory"
      hostname="localhost"
      port="389"
      bindDn="cn=Manager,dc=my-domain,dc=com"
      bindPassword="secret"
      authenticationMethod="simple"
      forceBindingLogin="false"
      userBaseDn="ou=people,dc=my-domain,dc=com"
      userRdnAttribute="uid"
      userIdAttribute="uid"
      userPasswordAttribute="userPassword"
      userObjectClass="inetOrgPerson"
      roleBaseDn="ou=groups,dc=my-domain,dc=com"
      roleNameAttribute="cn"
      roleMemberAttribute="uniqueMember"
      roleObjectClass="groupOfUniqueNames";
  };
  </code></pre>