如何在 Apache Mina sshd-core 版本 0.14.0 中覆盖 getVirtualUserDir()

How to override getVirtualUserDir() in Apache Mina sshd-core version 0.14.0

我使用 Apache Mina sshd-core 版本 0.10。0.Due 由于文件上传的一些问题,我不得不将版本更改为 0.14。0.In 我无法覆盖 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 中解决这个问题。谢谢

Mina SSHD 0.10.0 中getVirtualUserDir的目的是设置文件系统的初始目录。

在 Mina SSHD 0.14.0 中,NativeFileSystemView 构造函数的 current 参数实现了相同的目的:

public NativeFileSystemView(String userName, Map<String, String> roots, String current)

请注意,文档声称不直接调用构造函数,而是使用 NativeFileSystemFactory。但是 NativeFileSystemFactory 从不调用构造函数的重载。要么评论过时,要么工厂还没有完成。

或者这是一个错字,它实际上应该指的是 VirtualFileSystemFactory。您可能应该使用什么工厂而不是覆盖 NativeFileSystemFactory.

sshd.setFileSystemFactory(new VirtualFileSystemFactory("C:/root"));