Как переопределить 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"));
Другие вопросы по тегам