Apache Mina SSHD 1.0.0 установить каталог пользователя и отображение

Попытка установить домашний каталог для пользователя с помощью Apache Mina SSHD, встроенного в Java.

Оба решения устарели в 1.0
Как установить корневой каталог в Apache Mina Sshd Server на Java
Как переопределить getVirtualUserDir() в sshd-ядре Apache Mina версии 0.14.0

В 0.14.0 нормально работало следующее:

sshd.setFileSystemFactory(new NativeFileSystemFactory() {
   @Override
   public FileSystemView createFileSystem(final Session session) {
      HashMap<String,String> map = new HashMap<String,String>();
      map.put("/", "/Users/someone/Documents");
      return new NativeFileSystemView(session.getUsername(), map, "/");
   };
});

Это насколько я получил:

sshd.setFileSystemFactory(new NativeFileSystemFactory() {
    @Override
    public FileSystem createFileSystem(Session session) {
        // What should I do here?
        return super.createFileSystem(session);
    }
});

2 ответа

Решение

Нашел это.
Я должен был использовать VirtualFileSystemFactory класс

Это результат:

VirtualFileSystemFactory fsFactory = new VirtualFileSystemFactory();
fsFactory.setUserHomeDir(userName, realDirectory);
sshd.setFileSystemFactory(fsFactory);

Примечание: если вы используете OS X или Linux, не забудьте chmod твой путь первым.

Для версий v1.2.0 (если Java 7) / v1.3.0 (если Java 8) и java.nio.file.Path, решение может быть следующим:

sshServer.setFileSystemFactory(new VirtualFileSystemFactory(FileSystems.getDefault().getPath(rootDir)));
Другие вопросы по тегам