From 254f739ac1116eee7db943b19b312c9143eba4d1 Mon Sep 17 00:00:00 2001
From: Jeroen van Erp
Date: Fri, 16 Nov 2018 11:12:58 +0100
Subject: [PATCH] Upgraded sshd to 2.1.0
---
build.gradle | 5 ++++-
.../forwarded/RemotePortForwarderTest.java | 2 +-
.../com/hierynomus/sshj/test/SshFixture.java | 11 ++++------
.../userauth/method/AuthPasswordTest.java | 21 ++++++++++++-------
.../sshj/keyprovider/OpenSSHKeyFileTest.java | 4 ++--
5 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/build.gradle b/build.gradle
index 8251bb37..410663c8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -48,6 +48,7 @@ targetCompatibility = 1.6
configurations.compile.transitive = false
def bouncycastleVersion = "1.60"
+def sshdVersion = "2.1.0"
dependencies {
signature 'org.codehaus.mojo.signature:java16:1.1@signature'
@@ -62,7 +63,9 @@ dependencies {
testCompile "junit:junit:4.11"
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
testCompile "org.mockito:mockito-core:2.9.2"
- testCompile "org.apache.sshd:sshd-core:1.2.0"
+ testCompile "org.apache.sshd:sshd-core:$sshdVersion"
+ testCompile "org.apache.sshd:sshd-sftp:$sshdVersion"
+ testCompile "org.apache.sshd:sshd-scp:$sshdVersion"
testRuntime "ch.qos.logback:logback-classic:1.1.2"
testCompile 'org.glassfish.grizzly:grizzly-http-server:2.3.17'
testCompile 'org.apache.httpcomponents:httpclient:4.5.2'
diff --git a/src/test/java/com/hierynomus/sshj/connection/channel/forwarded/RemotePortForwarderTest.java b/src/test/java/com/hierynomus/sshj/connection/channel/forwarded/RemotePortForwarderTest.java
index dc05613d..eda13fab 100644
--- a/src/test/java/com/hierynomus/sshj/connection/channel/forwarded/RemotePortForwarderTest.java
+++ b/src/test/java/com/hierynomus/sshj/connection/channel/forwarded/RemotePortForwarderTest.java
@@ -54,7 +54,7 @@ public class RemotePortForwarderTest {
@Before
public void setUp() throws IOException {
- fixture.getServer().setTcpipForwardingFilter(new AcceptAllForwardingFilter());
+ fixture.getServer().setForwardingFilter(new AcceptAllForwardingFilter());
File file = httpServer.getDocRoot().newFile("index.html");
FileUtil.writeToFile(file, "
Hi!
");
}
diff --git a/src/test/java/com/hierynomus/sshj/test/SshFixture.java b/src/test/java/com/hierynomus/sshj/test/SshFixture.java
index ae2a0e2b..0db60596 100644
--- a/src/test/java/com/hierynomus/sshj/test/SshFixture.java
+++ b/src/test/java/com/hierynomus/sshj/test/SshFixture.java
@@ -20,12 +20,11 @@ import net.schmizz.sshj.DefaultConfig;
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.util.gss.BogusGSSAuthenticator;
import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.keyprovider.AbstractClassLoadableResourceKeyPairProvider;
-import org.apache.sshd.common.util.SecurityUtils;
-import org.apache.sshd.server.Command;
-import org.apache.sshd.server.CommandFactory;
+import org.apache.sshd.common.keyprovider.ClassLoadableResourceKeyPairProvider;
import org.apache.sshd.server.SshServer;
import org.apache.sshd.server.auth.password.PasswordAuthenticator;
+import org.apache.sshd.server.command.Command;
+import org.apache.sshd.server.command.CommandFactory;
import org.apache.sshd.server.scp.ScpCommandFactory;
import org.apache.sshd.server.session.ServerSession;
import org.apache.sshd.server.shell.ProcessShellFactory;
@@ -35,7 +34,6 @@ import org.junit.rules.ExternalResource;
import java.io.IOException;
import java.net.ServerSocket;
import java.util.Arrays;
-import java.util.Collections;
import java.util.concurrent.atomic.AtomicBoolean;
/**
@@ -108,8 +106,7 @@ public class SshFixture extends ExternalResource {
private SshServer defaultSshServer() {
SshServer sshServer = SshServer.setUpDefaultServer();
sshServer.setPort(randomPort());
- AbstractClassLoadableResourceKeyPairProvider fileKeyPairProvider = SecurityUtils.createClassLoadableResourceKeyPairProvider();
- fileKeyPairProvider.setResources(Collections.singletonList(hostkey));
+ ClassLoadableResourceKeyPairProvider fileKeyPairProvider = new ClassLoadableResourceKeyPairProvider(hostkey);
sshServer.setKeyPairProvider(fileKeyPairProvider);
sshServer.setPasswordAuthenticator(new PasswordAuthenticator() {
@Override
diff --git a/src/test/java/com/hierynomus/sshj/userauth/method/AuthPasswordTest.java b/src/test/java/com/hierynomus/sshj/userauth/method/AuthPasswordTest.java
index 1e61e45a..acf4c2ea 100644
--- a/src/test/java/com/hierynomus/sshj/userauth/method/AuthPasswordTest.java
+++ b/src/test/java/com/hierynomus/sshj/userauth/method/AuthPasswordTest.java
@@ -27,6 +27,7 @@ import org.apache.sshd.server.auth.UserAuth;
import org.apache.sshd.server.auth.password.PasswordAuthenticator;
import org.apache.sshd.server.auth.password.PasswordChangeRequiredException;
import org.apache.sshd.server.auth.password.UserAuthPassword;
+import org.apache.sshd.server.auth.password.UserAuthPasswordFactory;
import org.apache.sshd.server.session.ServerSession;
import org.junit.Before;
import org.junit.Rule;
@@ -50,20 +51,24 @@ public class AuthPasswordTest {
@Before
public void setPasswordAuthenticator() throws IOException {
fixture.getServer().setUserAuthFactories(Collections.>singletonList(new NamedFactory() {
-
@Override
public String getName() {
- return "password";
+ return UserAuthPasswordFactory.NAME;
+ }
+
+ @Override
+ public UserAuth get() {
+ return new UserAuthPassword() {
+ @Override
+ protected Boolean handleClientPasswordChangeRequest(Buffer buffer, ServerSession session, String username, String oldPassword, String newPassword) throws Exception {
+ return session.getPasswordAuthenticator().authenticate(username, newPassword, session);
+ }
+ };
}
@Override
public UserAuth create() {
- return new UserAuthPassword() {
- @Override
- protected Boolean handleClientPasswordChangeRequest(Buffer buffer, ServerSession session, String username, String oldPassword, String newPassword) throws Exception {
- return checkPassword(buffer, session, username, newPassword);
- }
- };
+ return get();
}
}));
fixture.getServer().setPasswordAuthenticator(new PasswordAuthenticator() {
diff --git a/src/test/java/net/schmizz/sshj/keyprovider/OpenSSHKeyFileTest.java b/src/test/java/net/schmizz/sshj/keyprovider/OpenSSHKeyFileTest.java
index 1c7a6745..2a4628a0 100644
--- a/src/test/java/net/schmizz/sshj/keyprovider/OpenSSHKeyFileTest.java
+++ b/src/test/java/net/schmizz/sshj/keyprovider/OpenSSHKeyFileTest.java
@@ -18,13 +18,13 @@ package net.schmizz.sshj.keyprovider;
import com.hierynomus.sshj.userauth.certificate.Certificate;
import com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile;
import net.schmizz.sshj.common.KeyType;
+import net.schmizz.sshj.common.SecurityUtils;
import net.schmizz.sshj.userauth.keyprovider.FileKeyProvider;
import net.schmizz.sshj.userauth.keyprovider.OpenSSHKeyFile;
import net.schmizz.sshj.userauth.password.PasswordFinder;
import net.schmizz.sshj.userauth.password.PasswordUtils;
import net.schmizz.sshj.userauth.password.Resource;
import net.schmizz.sshj.util.KeyUtil;
-import org.apache.sshd.common.util.SecurityUtils;
import org.junit.Before;
import org.junit.Test;
@@ -197,7 +197,7 @@ public class OpenSSHKeyFileTest {
checkOpenSSHKeyV1("src/test/resources/keytypes/ed25519_aes256cbc.pem", "foobar");
}
- private void checkOpenSSHKeyV1(String key, String password) throws IOException {
+ private void checkOpenSSHKeyV1(String key, final String password) throws IOException {
OpenSSHKeyV1KeyFile keyFile = new OpenSSHKeyV1KeyFile();
keyFile.init(new File(key), new PasswordFinder() {
@Override