jenkinsci / jenkinsci/subversion-plugin
[JENKINS-1919] NPE while saving job with FishEye SSL URL with self-signed server certificate
- Dominant language
- Java
- Stars
- 131
- Forks
- 275
- Avg merge
- 12h 4m
- Merged PRs (30d)
- 6
Description
Our FishEye server runs on SOlaris 10 behind an Apache with self-signed server
certificate.
For configuring a job with a repository browser as a connection to this FishEye
server entering the server's URL (e.g.
"https://subversion.f.ddk/fisheye/browse/vk") the following validation error is
shown next to the input field "URL":
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
certification path to requested target
After saving the corresponding job configuration the following exception:
java.lang.NullPointerException
at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:305)
at hudson.model.Descriptor.newInstance(Descriptor.java:136)
at hudson.scm.RepositoryBrowsers.createInstance(RepositoryBrowsers.java:51)
at hudson.scm.SubversionSCM$DescriptorImpl.newInstance(SubversionSCM.java:1020)
at hudson.scm.SubversionSCM$DescriptorImpl.newInstance(SubversionSCM.java:799)
at hudson.model.Descriptor.newInstance(Descriptor.java:133)
at hudson.scm.SCMS.parseSCM(SCMS.java:37)
at hudson.model.AbstractProject.submit(AbstractProject.java:902)
at hudson.model.Project.submit(Project.java:144)
at hudson.model.FreeStyleProject.submit(FreeStyleProject.java:68)
at hudson.model.Job.doConfigSubmit(Job.java:826)
at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:301)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:103)
at org.kohsuke.stapler.Function.bindAndinvoke(Function.java:57)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:75)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:440)
at org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:254)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:440)
at org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:254)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:440)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:361)
at org.kohsuke.stapler.Stapler.service(Stapler.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:38)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:30)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:52)
at
hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:28)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at
hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:42)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:44)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:85)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:619)
It would be great if validation of URIs in general is more tolerant regarding
issues with certssiificates or ming proxy authentication.
Not getting access to an URI during while manipulating the configuration
shouldn't prevent saving the configuration.
---
Originally reported by tjuerge, imported from: NPE while saving job with FishEye SSL URL with self-signed server certificate
Raw content of original issue
Our FishEye server runs on SOlaris 10 behind an Apache with self-signed server
certificate.
For configuring a job with a repository browser as a connection to this FishEye
server entering the server's URL (e.g.
"https://subversion.f.ddk/fisheye/browse/vk") the following validation error is
shown next to the input field "URL":sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
certification path to requested targetAfter saving the corresponding job configuration the following exception:
java.lang.NullPointerException
at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:305)
at hudson.model.Descriptor.newInstance(Descriptor.java:136)
at hudson.scm.RepositoryBrowsers.createInstance(RepositoryBrowsers.java:51)
at hudson.scm.SubversionSCM$DescriptorImpl.newInstance(SubversionSCM.java:1020)
at hudson.scm.SubversionSCM$DescriptorImpl.newInstance(SubversionSCM.java:799)
at hudson.model.Descriptor.newInstance(Descriptor.java:133)
at hudson.scm.SCMS.parseSCM(SCMS.java:37)
at hudson.model.AbstractProject.submit(AbstractProject.java:902)
at hudson.model.Project.submit(Project.java:144)
at hudson.model.FreeStyleProject.submit(FreeStyleProject.java:68)
at hudson.model.Job.doConfigSubmit(Job.java:826)
at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:301)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:103)
at org.kohsuke.stapler.Function.bindAndinvoke(Function.java:57)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:75)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:440)
at org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:254)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:440)
at org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:254)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:440)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:361)
at org.kohsuke.stapler.Stapler.service(Stapler.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:38)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:30)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:52)
at
hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:28)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at
hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:42)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:55)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:44)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:85)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:619)It would be great if validation of URIs in general is more tolerant regarding
issues with certssiificates or ming proxy authentication.
Not getting access to an URI during while manipulating the configuration
shouldn't prevent saving the configuration.
- environment:
Platform: All, OS: All
Contributor guide
Assessment
This issue has not been assessed yet.