2012-08-28 3 views
1

SVN + PKCS12 + HTTPS 사용에 문제가 있습니다. Jenkins Template에 SVN 저장소를 추가하려고 할 때 오류가 발생합니다. SVN 클라이언트가이 인증 방법을 지원하지 않는 것 같습니다. 먼저 Jenkins 1.467을 사용하여 데비안 워크 스테이션에서이 방법이 작동하는지 확인했습니다. 나는 이것을 위해 같은 인증서를 사용했다. 두 번째로, 제 젠킨스의 동일한 버전과 다른 버전을 제 서버에서 아무런 결과없이 사용해 보았습니다. 이제 질문 : 저는 젠킨스의 버그입니까, 아니면 완전히 잘못된 것을하고 있습니까?Jenkins + SVN + PKCS12 + HTTPS

Environment: 
Ubuntu 12.04 Server 
Jenkins 1.478 

스택 트레이스 : 내 우분투 12.04 분포에

나는이 문제를 해결
Aug 28, 2012 2:35:19 PM hudson.scm.SubversionSCM$DescriptorImpl doCheckRemote 
INFO: Failed to access subversion repository https://<xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>/trunk 
org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /xxxxxxxxxxxxxxxxxxxx/trunk failed 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:300) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1018) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99) 
     at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2067) 
     at hudson.scm.SubversionSCM$DescriptorImpl.doCheckRemote(SubversionSCM.java:2001) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288) 
     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) 
     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) 
     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488) 
     at org.kohsuke.stapler.Stapler.service(Stapler.java:162) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) 
     at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) 
     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) 
     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) 
     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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63) 
     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:66) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) 
     at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) 
     at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
     at java.lang.Thread.run(Thread.java:679) 
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) 
     at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185) 
     at hudson.scm.FilterSVNAuthenticationManager.getFirstAuthentication(FilterSVNAuthenticationManager.java:35) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPSSLKeyManager.initialize(HTTPSSLKeyManager.java:423) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPSSLKeyManager.initializeNoException(HTTPSSLKeyManager.java:406) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPSSLKeyManager.chooseClientAlias(HTTPSSLKeyManager.java:302) 
     at sun.security.ssl.AbstractWrapper.chooseClientAlias(SSLContextImpl.java:282) 
     at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:629) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:228) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:609) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:545) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:945) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1190) 
     at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:657) 
     at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:108) 
     at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.sendData(HTTPConnection.java:238) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:168) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:385) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:298) 
     ... 79 more 
Caused by: svn: E200015: No credential to try. Authentication failed 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97) 
     ... 101 more 
Aug 28, 2012 2:35:19 PM hudson.scm.SubversionSCM$DescriptorImpl doCheckRevisionPropertiesSupported 
INFO: Failed to access subversion repository https://<subxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>/trunk 
org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /sxxxxxxxxxxxxxxxxxxxxxxxxxxx/trunk failed 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:300) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1018) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99) 
     at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2067) 
     at hudson.scm.SubversionSCM$DescriptorImpl.doCheckRevisionPropertiesSupported(SubversionSCM.java:2202) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288) 
     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) 
     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) 
     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488) 
     at org.kohsuke.stapler.Stapler.service(Stapler.java:162) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) 
     at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) 
     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) 
     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) 
     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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63) 
     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:66) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) 
     at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) 
     at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
     at java.lang.Thread.run(Thread.java:679) 
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) 
     at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185) 
     at hudson.scm.FilterSVNAuthenticationManager.getFirstAuthentication(FilterSVNAuthenticationManager.java:35) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPSSLKeyManager.initialize(HTTPSSLKeyManager.java:423) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPSSLKeyManager.initializeNoException(HTTPSSLKeyManager.java:406) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPSSLKeyManager.chooseClientAlias(HTTPSSLKeyManager.java:302) 
     at sun.security.ssl.AbstractWrapper.chooseClientAlias(SSLContextImpl.java:282) 
     at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:629) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:228) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:609) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:545) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:945) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1190) 
     at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:657) 
     at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:108) 
     at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.sendData(HTTPConnection.java:238) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:168) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:385) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:298) 
     ... 79 more 
Caused by: svn: E200015: No credential to try. Authentication failed 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97) 
     ... 101 more 
+0

아무도 단서가 있습니까? – Skiaddict

답변

2

...

는, 오픈 JDK는 기본적으로 젠킨스에 의해 사용되었다. Oracle Java가 설치되었습니다 (여기에 수동 : http://www.devsniper.com/ubuntu-12-04-install-sun-jdk-6-7/). 자체 서명 된 인증서를 사용할 때 자바 키 저장소에 SSC를 추가하는 데 어려움을 겪는 데 도움이되는 설명서는 다음과 같습니다. http://www.erikzaadi.com/2011/09/09/connecting-jenkins-to-self-signed-certificated-servers/

다른 사람들에게 도움이되기를 바랍니다.

관련 문제