title: Spring Boot remote shell fails when deploying to Tomcat
body: <p>I'm using Spring Boot and I'm actually facing a (small) issue. It's really bugging me, and I haven't found an answer about it.</p>
  
  <p>I've integrated <code>spring-boot-starter-remote-shell</code> in my pom.xml file. 
  Everything is working fine when starting the application as a standalone Spring Boot app. But it doesn't work at all when I'm trying to deploy the war file to Tomcat using Eclipse Tomcat 8 plugin.</p>
  
  <p>Here's the exception it throws to me :</p>
  
  <pre><code>2015-02-12 11:51:13.926 ERROR 1437 --- [ost-startStop-1] org.crsh.ssh.term.SSHLifeCycle           : Could not start CRaSSHD
  
  java.lang.SecurityException: class "org.bouncycastle.crypto.prng.VMPCRandomGenerator"'s signer information does not match signer information of other classes in the same package
  at java.lang.ClassLoader.checkCerts(ClassLoader.java:895)
  at java.lang.ClassLoader.preDefineClass(ClassLoader.java:665)
  at java.lang.ClassLoader.defineClass(ClassLoader.java:758)
  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
  at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2452)
  at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:854)
  at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1264)
  at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1147)
  at org.apache.sshd.common.random.BouncyCastleRandom.&lt;init&gt;(BouncyCastleRandom.java:56)
  at org.apache.sshd.common.random.BouncyCastleRandom$Factory.create(BouncyCastleRandom.java:48)
  at org.apache.sshd.common.random.BouncyCastleRandom$Factory.create(BouncyCastleRandom.java:41)
  at org.apache.sshd.common.random.SingletonRandomFactory.&lt;init&gt;(SingletonRandomFactory.java:37)
  at org.apache.sshd.SshServer.setUpDefaultServer(SshServer.java:454)
  at org.crsh.ssh.term.SSHLifeCycle.init(SSHLifeCycle.java:136)
  at org.crsh.ssh.SSHPlugin.init(SSHPlugin.java:194)
  at org.crsh.plugin.PluginManager.getPlugins(PluginManager.java:83)
  at org.crsh.plugin.PluginContext.start(PluginContext.java:327)
  at org.crsh.plugin.PluginLifeCycle.start(PluginLifeCycle.java:104)
  at org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration$CrshBootstrapBean.init(CrshAutoConfiguration.java:230)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349)
  at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300)
  at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1560)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
  at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
  at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
  at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
  at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
  at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:109)
  at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
  at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:143)
  at org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:89)
  at org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:51)
  at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
  at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5185)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  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)
  </code></pre>
  
  <p>Is there a way to make it work (while keeping security of course) ?</p>