2016-07-28 23 views
0

我的意图是将Gerrit代码审阅工具安装在远程服务器中。我已成功初始化gerrit网站并在浏览器中启动了gerrit的web ui。关键是我在gerrit配置文件中使用了“LDAP”作为auth类型。但是,当试图登录到gerrit时,它显示错误“此时不可用身份验证”。并且相应的错误日志显示一些“NameNotFoundException”。下面显示的是我的gerrit配置和错误日志消息。假设我的LDAP服务器ip是“xxx.xxx.xxx.xxx”,域是“abc-def.com”任何人都知道如何解决这个问题。与Gerrit一起使用的LDAP中的NameNotFoundException

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

我应该要编辑格里特服务器中的任何此认证的工作:

**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) 

回答

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 

但认证仍无法正常工作,现在另一个信息来自错误日志的得到了什么?或者我必须编辑LDAP服务器中的任何内容才能正常工作?