Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-52218

Creating a Multibranch pipeline job as an authenticated user via GitHub Committer Authorization Strategy results in error

    Details

    • Similar Issues:

      Description

      Use case -> Using GitHub Committer Authorization Strategy as a non admin authenticated user whose github org is listed in "Participant in Organization".

       

      Attempting to create a multibranch pipeline succeeds initially, however upon redirect to the /configuration page, user receives the following stack trace:

      Jun 27, 2018 7:47:39 PM hudson.ExpressionFactory2$JexlExpression evaluate
      WARNING: Caught exception evaluating: it.items in /job/platform-kubernetes/. Reason: java.lang.reflect.InvocationTargetException
      java.lang.reflect.InvocationTargetException
      {{ at sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source)}}
      {{ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)}}
      {{ at java.lang.reflect.Method.invoke(Method.java:498)}}
      {{ at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)}}
      {{ at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)}}
      {{ at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)}}
      {{ at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)}}
      {{ at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)}}
      {{ at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)}}
      {{ at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)}}
      {{ at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)}}
      {{ at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)}}
      {{ at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)}}
      {{ at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)}}
      {{ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)}}
      {{ at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)}}
      {{ at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)}}
      {{ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)}}
      {{ at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)}}
      {{ at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)}}
      {{ at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)}}
      {{ at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44)}}
      {{ at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)}}
      {{ at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)}}
      {{ at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)}}
      {{ at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)}}
      {{ at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)}}
      {{ at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)}}
      {{ at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)}}
      {{ at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)}}
      {{ at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)}}
      {{ at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:782)}}
      {{ at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)}}
      {{ at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)}}
      {{ at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)}}
      {{ at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)}}
      {{ at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)}}
      {{ at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)}}
      {{ at org.kohsuke.stapler.Stapler.service(Stapler.java:238)}}
      {{ at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)}}
      {{ at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)}}
      {{ at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)}}
      {{ at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)}}
      {{ at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)}}
      {{ at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)}}
      {{ at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)}}
      {{ at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)}}
      {{ at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)}}
      {{ at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)}}
      {{ at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)}}
      {{ at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)}}
      {{ at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)}}
      {{ at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)}}
      {{ at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)}}
      {{ at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)}}
      {{ at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)}}
      {{ at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)}}
      {{ at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)}}
      {{ at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)}}
      {{ at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)}}
      {{ at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)}}
      {{ at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)}}
      {{ at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)}}
      {{ at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)}}
      {{ at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)}}
      {{ at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)}}
      {{ at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)}}
      {{ at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)}}
      {{ at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)}}
      {{ at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)}}
      {{ at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)}}
      {{ at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)}}
      {{ at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)}}
      {{ at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)}}
      {{ at org.eclipse.jetty.server.Server.handle(Server.java:564)}}
      {{ at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)}}
      {{ at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)}}
      {{ at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)}}
      {{ at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)}}
      {{ at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)}}
      {{ at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)}}
      {{ at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)}}
      {{ at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)}}
      {{ at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)}}
      {{ at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)}}
      {{ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)}}
      {{ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)}}
      {{ at java.lang.Thread.run(Thread.java:748)}}
      Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
      {{ at java.util.ArrayList.rangeCheck(ArrayList.java:657)}}
      {{ at java.util.ArrayList.get(ArrayList.java:433)}}
      {{ at org.jenkinsci.plugins.GithubRequireOrganizationMembershipACL.getRepositoryName(GithubRequireOrganizationMembershipACL.java:289)}}
      {{ at org.jenkinsci.plugins.GithubRequireOrganizationMembershipACL.hasRepositoryPermission(GithubRequireOrganizationMembershipACL.java:256)}}
      {{ at org.jenkinsci.plugins.GithubRequireOrganizationMembershipACL.hasPermission(GithubRequireOrganizationMembershipACL.java:99)}}
      {{ at hudson.security.ACL.hasPermission(ACL.java:87)}}
      {{ at hudson.security.AccessControlled.hasPermission(AccessControlled.java:54)}}
      {{ at com.cloudbees.hudson.plugins.folder.AbstractFolder.getItems(AbstractFolder.java:1014)}}
      {{ at hudson.model.AllView.getItems(AllView.java:105)}}
      {{ ... 125 more}}

       

      Users with admin permissions have no such issue, however normal users should absolutely have the ability to create new multibranch jobs

        Attachments

          Activity

          There are no comments yet on this issue.

            People

            • Assignee:
              sag47 Sam Gleske
              Reporter:
              sbussetti steve bussetti
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: