I’m trying to setup a mock SFTP server using Apache Mina. I have these 
dependencies in my pom.xml …

    <dependency>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcprov-jdk16</artifactId>
                        <version>1.46</version>
                        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.sshd</groupId>
        <artifactId>sshd-sftp</artifactId>
        <version>0.11.0</version>
        <scope>test</scope>
    </dependency>


Then I have this method for setting up the SFTP server …

private void setupSftpServer(final Integer sftpPort) throws IOException
{
    final SshServer sshd = SshServer.setUpDefaultServer();
    sshd.setPort(sftpPort);
    sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));


    final List<NamedFactory<UserAuth>> userAuthFactories = new 
ArrayList<NamedFactory<UserAuth>>();
    userAuthFactories.add(new UserAuthNone.Factory());
    sshd.setUserAuthFactories(userAuthFactories);
    sshd.setPublickeyAuthenticator(new PublickeyAuthenticator(){
        @Override
        public boolean authenticate(String arg0,
                                    PublicKey arg1,
                                    ServerSession arg2)
        {
            return true;
        }
      }
    );


    sshd.setCommandFactory(new ScpCommandFactory());


    final List<NamedFactory<Command>> namedFactoryList = new 
ArrayList<NamedFactory<Command>>();
    namedFactoryList.add(new SftpSubsystem.Factory());
    sshd.setSubsystemFactories(namedFactoryList);


    sshd.start();
}   //

However, upon running the method I get the exception …

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:952)
        at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at 
org.apache.sshd.common.random.BouncyCastleRandom.<init>(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.<init>(SingletonRandomFactory.java:37)
        at org.apache.sshd.SshServer.setUpDefaultServer(SshServer.java:454)
        at 
org.mainco.subco.myproject.service.myprojectStudentServiceTest.setupmyprojectSftpServer(myprojectStudentServiceTest.java:1221)
        at 
org.mainco.subco.myproject.service.myprojectStudentServiceTest.testSftpStudentFile(myprojectStudentServiceTest.java:1201)


Google has offered little help about this exception.  Is there another way I 
should be setting up my mock SFTP server or is there some other dependencies I 
should be including?


Thanks, - Dave                                    

Reply via email to