From c117699b750c136087682b3009c7c6840fcceef6 Mon Sep 17 00:00:00 2001 From: Jacek Miiller Date: Tue, 25 Apr 2023 15:22:17 +0200 Subject: [PATCH 1/2] Support for newest sshd libraries --- pom.xml | 11 ++++++--- .../rule/FakeSftpServerRule.java | 24 +++++++++++++++++-- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 67d5baf..22d6358 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ fake-sftp-server-rule - 2.1.0-SNAPSHOT + 3.0.0-Gigaset jar Fake SFTP Server Rule @@ -44,7 +44,12 @@ org.apache.sshd sshd-core - [1,2) + [2.6,) + + + org.apache.sshd + sshd-sftp + [2.6,) junit @@ -60,7 +65,7 @@ com.jcraft jsch - [0.1.54] + [0.1.55] test diff --git a/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java b/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java index f8d0a41..7dee709 100644 --- a/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java +++ b/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java @@ -1,9 +1,11 @@ package com.github.stefanbirkner.fakesftpserver.rule; +import org.apache.sshd.common.file.FileSystemFactory; +import org.apache.sshd.common.session.SessionContext; import org.apache.sshd.server.SshServer; import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; import org.apache.sshd.server.session.ServerSession; -import org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory; +import org.apache.sshd.sftp.server.SftpSubsystemFactory; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; @@ -434,7 +436,7 @@ private SshServer startServer( * In order to use the file system for multiple channels/sessions we * have to use a file system wrapper whose close() does nothing. */ - server.setFileSystemFactory(session -> new DoNotClose(fileSystem)); + server.setFileSystemFactory(new DoNotCloseFileSystemFactory(fileSystem)); server.start(); this.server = server; return server; @@ -470,6 +472,24 @@ private void verifyThatTestIsRunning( ); } + private static class DoNotCloseFileSystemFactory implements FileSystemFactory{ + + final FileSystem fileSystem; + DoNotCloseFileSystemFactory(FileSystem fileSystem){ + this.fileSystem = fileSystem; + } + + @Override + public Path getUserHomeDir(SessionContext sessionContext) throws IOException { + return null; + } + + @Override + public FileSystem createFileSystem(SessionContext sessionContext) throws IOException { + return new DoNotClose(fileSystem); + } + } + private static class DoNotClose extends FileSystem { final FileSystem fileSystem; From 1a9e60883d2b7df016482f50d51594122d9de8bf Mon Sep 17 00:00:00 2001 From: Jacek Miiller Date: Tue, 25 Apr 2023 15:32:34 +0200 Subject: [PATCH 2/2] Support for newest sshd libraries --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 22d6358..dbc15d9 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ fake-sftp-server-rule - 3.0.0-Gigaset + 2.2.0 jar Fake SFTP Server Rule