使用不再支持的BouncyCastle版本的Spring Boot(通过CrashHub)

时间:2015-01-28 18:27:59

标签: spring spring-boot

Spring boot使用旧版本的CrashHub(POM中的crashub.version),它使用旧版本的bouncycastle,使用PemReader类。这与我在我的应用程序中使用的最新版本的bouncycastle冲突。你能更新Spring Boot还是我可以做的工作。现在,当我尝试ssh到我的应用程序时,我得到以下异常:

java.lang.NoClassDefFoundError: org/bouncycastle/openssl/PEMReader
    at org.crsh.ssh.term.URLKeyPairProvider.loadKeys(URLKeyPairProvider.java:54)
    at org.apache.sshd.common.keyprovider.AbstractKeyPairProvider.getKeyTypes(AbstractKeyPairProvider.java:53)
    at org.apache.sshd.server.session.ServerSession.sendKexInit(ServerSession.java:127)
    at org.apache.sshd.server.session.ServerSession.<init>(ServerSession.java:60)
    at org.apache.sshd.server.session.SessionFactory.doCreateSession(SessionFactory.java:43)
    at org.apache.sshd.common.session.AbstractSessionFactory.createSession(AbstractSessionFactory.java:38)
    at org.apache.sshd.common.AbstractSessionIoHandler.sessionCreated(AbstractSessionIoHandler.java:36)
    at org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.completed(Nio2Acceptor.java:128)
    at org.apache.sshd.common.io.nio2.Nio2Acceptor$AcceptCompletionHandler.completed(Nio2Acceptor.java:109)
    at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
    at sun.nio.ch.Invoker$2.run(Invoker.java:218)
    at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.openssl.PEMReader
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.springframework.boot.loader.LaunchedURLClassLoader.doLoadClass(LaunchedURLClassLoader.java:170)
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:136)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 15 common frames omitted  

1 个答案:

答案 0 :(得分:1)

1.3.0是Crashub的最新版本,它是Spring Boot支持的版本,所以在Spring Boot方面没有什么可以做的。假设您不想降级您的Bouncycastle依赖关系,您唯一的选择就是停止使用Crashub。

更为复杂的选择是分叉Crashub并进行必要的更改以使其与所需版本的Bouncycastle一起使用。