2016-07-28 3 views
0

Meine Absicht war es, Gerrit Code-Review-Tool auf einem Remote-Server zu installieren. Ich hatte die Gerrit-Site erfolgreich initialisiert und die Web-Oberfläche von Gerrit im Browser gestartet. Der Schlüssel ist, dass ich "LDAP" als Auth-Typ in der Gerrit-Konfigurationsdatei verwendet habe. Wenn versucht wird, sich in Gerrit anzumelden, wird der Fehler "Authentifizierung zu diesem Zeitpunkt nicht verfügbar" angezeigt. Und das entsprechende Fehlerprotokoll zeigt einige "NameNotFoundException". Im Folgenden sehen Sie meine Gerrit-Konfiguration und Fehlerprotokollmeldungen. Angenommen, meine LDAP-Server-IP ist "xxx.xxx.xxx.xxx" und die Domain ist "abc-def.com". Jeder weiß, wie man das Problem beheben kann.NameNotFoundException in LDAP bei der Verwendung mit Gerrit

**gerrit.config** 

[database] 
    type = h2 
    database = /home/test/gerrit-testsite/db/ReviewDB 
[index] 
    type = LUCENE 
[auth] 
    type = LDAP 
[ldap] 
    server = ldap://xxx.xxx.xxx.xxx 
    username = [email protected] 
    password = ******* 
    accountBase = CN=username,OU=Users,OU=TVM,OU=India,DC=abc-def,DC=com 
    referral = follow 
    accountPattern = (sAMAccountName=${username}) 
    groupPattern = (cn=${groupname}) 
    accountFullName = cn 
    accountMemberField = memberOf 
    accountEmailAddress = mail 
[receive] 
    enableSignedPush = false 
[sendemail] 
    smtpServer = localhost 
[container] 
    user = test 
    javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre 


**Error log** 


ERROR com.google.gerrit.server.auth.ldap.LdapRealm : Cannot query LDAP to authenticate user 
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of: 
    'OU=Users,OU=TVM,OU=India,DC=quest-global,DC=com' 
\00]; remaining name 'CN=username,OU=Users,OU=TVM,OU=India,DC=quest-global,DC=com' 
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3113) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3034) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2841) 
    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1850) 
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1773) 
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1790) 
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:412) 
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:394) 
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:376) 
    at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:286) 
    at com.google.gerrit.server.auth.ldap.LdapQuery.query(LdapQuery.java:70) 
    at com.google.gerrit.server.auth.ldap.Helper.findAccount(Helper.java:205) 
    at com.google.gerrit.server.auth.ldap.LdapRealm.authenticate(LdapRealm.java:235) 
    at com.google.gerrit.server.account.AccountManager.authenticate(AccountManager.java:106) 
    at com.google.gerrit.httpd.auth.ldap.LdapLoginServlet.doPost(LdapLoginServlet.java:125) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) 
    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) 
    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) 
    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) 
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) 
    at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:82) 
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 
    at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:73) 
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 
    at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:117) 
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 
    at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:136) 
    at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:138) 
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)`enter code here` 
    at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75) 
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119) 
    at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) 
    at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) 
    at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) 
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
    at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
    at org.eclipse.jetty.server.Server.handle(Server.java:499) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
    at java.lang.Thread.run(Thread.java:745) 

Antwort

0
I have fixed this issue by changing the gerrit.config file with the following settings : 

    [auth] 
     type = LDAP_BIND 
    [ldap] 
     server = ldap://192.168.192.200 
     accountBase = CN=Username,OU=Users,OU=TVM,OU=India,DC=quest-global,DC=com 
     referral = follow 
     accountPattern = (&(objectclass=*)(sAMAccountName=${username})) 
     groupBase = CN=Username,OU=Users,OU=TVM,OU=India,DC=quest-global,DC=com 
     groupPattern = (cn=${groupname}) 
     accountFullName = cn 
     accountMemberField = memberOf 
     accountEmailAddress = mail 

Aber Authentifizierung immer noch nicht funktioniert, jetzt eine andere INFO bekam von Fehlerprotokoll als:

INFO com.google.gerrit.httpd.auth.ldap.LdapLoginServlet : '[email protected]' failed to sign in: No such user: [email protected] 

Sollte ich irgendetwas in gerrit Server bearbeiten für diese Authentifizierung zu arbeiten? Oder muss ich irgendetwas im LDAP-Server bearbeiten, damit dies funktioniert?

Verwandte Themen