2012-10-13 45 views
3

我在下面試圖提交登錄表單。有誰知道是什麼原因造成的?謝謝。Jetty LdapLoginModule:登錄失敗:忽略所有模塊

2012-10-13 13:11:46.300:INFO:oejpjs.LdapLoginModule:Searching for users with filter: '(&(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) 

FWIW這是一些周邊的結構:

的jetty.xml:

<?xml version="1.0"?> 
<Configure> 
    <Call name="addBean"> 
     <Arg> 
      <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> 
       <Set name="name">ldap</Set> 
       <Set name="loginModuleName">ldaploginmodule</Set> 
      </New> 
     </Arg> 
    </Call> 
</Configure> 

的ldap.conf:

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"; 
}; 

回答

0

你按照指示在這裏到底是什麼?

http://wiki.eclipse.org/Jetty/Feature/JAAS

一個快速的區別是:

​​

也,你用一個指向文件的實際位置正確的CLI選項?

-Djava.security.auth.login.config =的ldap.conf

+0

謝謝,我已經試過,我想是這樣的差異是如何使它在幾個教程的明確的解釋,但似乎並沒有影響到它的避風港我做的是改變,一個區別就是我使用的是maven插件,我將java.security.auth.login.config arg傳遞給maven,它必須正常工作,因爲它正在打擊LDAP(儘管如此,一切都看起來很成功) – rich

+0

我相信[這是你](http://dev.eclipse.org/mhonarc/lists/jetty-users/msg00398.html)。你能否提供解釋爲什麼這會起作用。 –

3

我有完全相同的問題。我發現here的修復方法是將forceBindingLogin更改爲"true",即ldap.conf

我希望我有這種:-(