如何在 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"));
我使用 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"));