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

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

Оба решения устарели в версии 1.0 in-
Как установить корневой каталог на сервере Apache Mina Sshd на Java
Как переопределить getVirtualUserDir () в Apache Mina sshd-core версии 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);
    }
});

person Alon Amir    schedule 18.10.2015    source источник


Ответы (2)


Нашел.
Мне пришлось использовать VirtualFileSystemFactory class.

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

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

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

person Alon Amir    schedule 19.10.2015

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

sshServer.setFileSystemFactory(new VirtualFileSystemFactory(FileSystems.getDefault().getPath(rootDir)));
person Alix Lourme    schedule 08.11.2016