Apache Mina SFTP SftpSubsystem.Factory()

Я пытаюсь настроить простой SFTP-сервер, используя Apache Mine SSHD v1.2.0. .

Я просмотрел несколько примеров в Интернете, например. здесь, здесь и здесь.

Однако они все имеют одну и ту же общую строку, которую я не могу заставить NetBeans разрешить. NetBeans сообщает мне, что не может найти Factory в SftpSubsystem. Рассматриваемая строка выглядит следующим образом:

sftpServer.setSubsystemFactories (
    Arrays. <NamedFactory <Command >> asList (new SftpSubsystem.Factory ()));

Мой main выглядит примерно так:

SshServer sftpServer = SshServer.setUpDefaultServer ();
sftpServer.setPort (PORT);
sftpServer.setKeyPairProvider (new SimpleGeneratorHostKeyProvider (new File("hostkey.ser")));
sftpServer.setSubsystemFactories (
     Arrays. <NamedFactory <Command >> asList (new SftpSubsystem.Factory ()));
sftpServer.setPasswordAuthenticator (new PasswordAuthenticator () {
    @Override
    public boolean authenticate (String username, String password, ServerSession session) {
       return true;
    }
});
sftpServer.start ();
while(true);

Что мне не хватает? Я просто хочу подключиться к фиктивному SFTP-серверу, перечислить несколько каталогов и загрузить файл или два. Дело в том, что я хочу сделать это из существующего java-приложения.


person AcidHawk    schedule 08.05.2017    source источник


Ответы (2)


В последних версиях Apache SSHD это SftpSubsystemFactory:

sftpServer.setSubsystemFactories(
    Arrays.<NamedFactory<Command>>asList(new SftpSubsystemFactory()));
person Martin Prikryl    schedule 08.05.2017
comment
Спасибо. Я не уверен, почему я не мог этого найти, но замена моей строки на ту, которую вы предоставили, решила мою проблему. - person AcidHawk; 08.05.2017
comment
Спасибо, это сработало для меня. Все примеры в Интернете имели SftpSubsystem.Factory . Фу. - person djangofan; 12.05.2018

Я использую версию 2.6.0, и теперь вам не нужно приводить типы. Вы можете просто сказать:

sftpServer.setSubsystemFactories(Arrays.asList(new SftpSubsystemFactory()));
person Krishna    schedule 23.05.2021
comment
Вместо этого вы также можете использовать Collections.singletonList. - person Krishna; 23.05.2021