Как переопределить getVirtualUserDir() в sshd-ядре Apache Mina версии 0.14.0
Я использовал Apache Mina sshd-core версии 0.10.0. Из-за некоторых проблем с загрузкой файлов мне пришлось изменить версию на 0.14.0. Там я не могу переопределить метод getVirtualUserDir(). Ниже приведен мой пример кода,
sshd.setFileSystemFactory(new NativeFileSystemFactory() {
@Override
public FileSystemView createFileSystemView(final Session session) {
return new NativeFileSystemView(session.getUsername(), false) {
@Override
public String getVirtualUserDir() {
return "C:/root";
}
};
};
});
Я хотел бы знать, что, как я могу преодолеть эту проблему в Apache Mina sshd-core версии 0.14.0. Благодарю.
1 ответ
Цель getVirtualUserDir
в Мине SSHD 0.10.0 должен был быть установлен начальный каталог файловой системы.
В Мина ССХД 0.14.0 той же цели служат current
параметр NativeFileSystemView
конструктор:
public NativeFileSystemView(String userName, Map<String, String> roots, String current)
Обратите внимание, что документация утверждает, что не вызывает конструктор напрямую и не использует NativeFileSystemFactory
вместо. Но NativeFileSystemFactory
никогда не вызывает эту перегрузку конструктора. Либо комментарий устарел, либо фабрика еще не закончена.
Или это опечатка, и она должна была VirtualFileSystemFactory
, Какую фабрику вы, вероятно, должны использовать вместо переопределения? NativeFileSystemFactory
,
sshd.setFileSystemFactory(new VirtualFileSystemFactory("C:/root"));