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)));