[JIRA] (JENKINS-60679) java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERNull.equals(Lorg/bouncycastle/asn1/ASN1Encodable;)Z

15 views
Skip to first unread message

arnaud.lefebvre@clever-cloud.com (JIRA)

unread,
Jan 7, 2020, 12:48:02 PM1/7/20
to jenkinsc...@googlegroups.com
Arnaud Lefebvre created an issue
 
Jenkins / Bug JENKINS-60679
java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERNull.equals(Lorg/bouncycastle/asn1/ASN1Encodable;)Z
Issue Type: Bug Bug
Assignee: Ivan Fernandez Calvo
Components: saml-plugin
Created: 2020-01-07 17:47
Environment: Jenkins 2.204.1 (LTS)
Icedtea8 3.11.0

saml-plugin 1.1.4
bouncycastle-api 1.18
Priority: Major Major
Reporter: Arnaud Lefebvre

When logging in using SAML, jenkins will throw this error:

java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERNull.equals(Lorg/bouncycastle/asn1/ASN1Encodable;)Z
 at org.bouncycastle.operator.jcajce.OperatorHelper.getSignatureName(Unknown Source)
 at org.bouncycastle.operator.jcajce.OperatorHelper.createSignature(Unknown Source)
 at org.bouncycastle.operator.jcajce.JcaContentSignerBuilder.build(Unknown Source)
 at org.jenkinsci.plugins.saml.BundleKeyStore.generateCertificate(BundleKeyStore.java:279)
 at org.jenkinsci.plugins.saml.BundleKeyStore.createCertificateChain(BundleKeyStore.java:151)
 at org.jenkinsci.plugins.saml.BundleKeyStore.init(BundleKeyStore.java:113)
 at org.jenkinsci.plugins.saml.OpenSAMLWrapper.createSAML2Client(OpenSAMLWrapper.java:113)
 at org.jenkinsci.plugins.saml.SamlRedirectActionWrapper.process(SamlRedirectActionWrapper.java:45)
 at org.jenkinsci.plugins.saml.SamlRedirectActionWrapper.process(SamlRedirectActionWrapper.java:30)
 at org.jenkinsci.plugins.saml.OpenSAMLWrapper.get(OpenSAMLWrapper.java:64)
 at org.jenkinsci.plugins.saml.SamlSecurityRealm.doCommenceLogin(SamlSecurityRealm.java:257)
 at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
 at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
 at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
 at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
 at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
 at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535)
 at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
 Caused: javax.servlet.ServletException
 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:797)
 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
 at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:219)
 at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
 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:873)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
 at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
 at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:246)
 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.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
 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:1610)
 at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
 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:135)
 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:1610)
 at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
 at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
 at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
 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:257)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
 at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
 at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
 at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
 at org.eclipse.jetty.server.Server.handle(Server.java:505)
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
 at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
 at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
 at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
 at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
 at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
 at java.lang.Thread.run(Thread.java:748)

 

We started encountering this error on  January 4th 2020 which is the release date of bouncycastle-api 2.18 on Maven. I tried to update the bouncycastle-api dependency in the saml-plugin project and the tests gave the same error which is why I think it's related to the upgrade.

 

Let me know if I can provide you anything else or even help resolving this issue by submitting a pull request if needed.

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

kuisathaverat@gmail.com (JIRA)

unread,
Jan 12, 2020, 6:43:02 AM1/12/20
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo started work on Bug JENKINS-60679
 
Change By: Ivan Fernandez Calvo
Status: Open In Progress

kuisathaverat@gmail.com (JIRA)

unread,
Jan 12, 2020, 6:56:03 AM1/12/20
to jenkinsc...@googlegroups.com

kuisathaverat@gmail.com (JIRA)

unread,
Jan 12, 2020, 7:27:02 AM1/12/20
to jenkinsc...@googlegroups.com

kuisathaverat@gmail.com (JIRA)

unread,
Jan 12, 2020, 1:38:02 PM1/12/20
to jenkinsc...@googlegroups.com

kuisathaverat@gmail.com (JIRA)

unread,
Jan 12, 2020, 1:44:02 PM1/12/20
to jenkinsc...@googlegroups.com

arnaud.lefebvre@clever-cloud.com (JIRA)

unread,
Jan 13, 2020, 5:04:02 AM1/13/20
to jenkinsc...@googlegroups.com
Arnaud Lefebvre commented on Bug JENKINS-60679
 
Re: java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERNull.equals(Lorg/bouncycastle/asn1/ASN1Encodable;)Z

Hello Ivan Fernandez Calvo,

Thanks for your time on this issue! It seems to me that the issue remains even after this release. My jenkins successfully updated to saml plugin to 1.1.5 but the problem persists.

Also, when I `mvn test` the Github repository on the master branch, the tests fail with the same error.

 

Do you need any other information?

Thanks!

kuisathaverat@gmail.com (JIRA)

unread,
Jan 13, 2020, 6:30:03 AM1/13/20
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo commented on Bug JENKINS-60679
 
Re: java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERNull.equals(Lorg/bouncycastle/asn1/ASN1Encodable;)Z

`mvn test` work on CI and on my local environment, I was unable to replicate your issue on a local test environment, Could you check if you have two versions of the bouncycastle jar in the classpath?

arnaud.lefebvre@clever-cloud.com (JIRA)

unread,
Jan 13, 2020, 7:54:03 AM1/13/20
to jenkinsc...@googlegroups.com
Arnaud Lefebvre commented on Bug JENKINS-60679
 
Re: java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERNull.equals(Lorg/bouncycastle/asn1/ASN1Encodable;)Z

Thank you very much for your hint, it was indeed somehow related to the classpath, I've been told a specific version of bouncycastle was used in our icedtea8 java package to mainly avoid TLS issues, which explains why I still have the issue on my laptop and our jenkins. We'll switch to Java 11 which solves the problem.

 

Again, thanks for your time on this matter

Reply all
Reply to author
Forward
0 new messages