Apache Mina SSHD 1.0.0 设置用户目录和映射
Apache Mina SSHD 1.0.0 set user directory & mapping
正在尝试使用 Java 中嵌入的 Apache Mina SSHD 为用户设置主目录。
这两种解决方案在 1.0 in-
中均已弃用
在 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);
}
});
找到了。
我不得不使用 VirtualFileSystemFactory
class.
这是结果:
VirtualFileSystemFactory fsFactory = new VirtualFileSystemFactory();
fsFactory.setUserHomeDir(userName, realDirectory);
sshd.setFileSystemFactory(fsFactory);
注意:
如果您使用 OS X 或 linux,请不要忘记 chmod
您的路径首先.
对于 v1.2.0 (if Java 7) / v1.3.0 (if Java 8) 和 java.nio.file.Path 用法,解决方案可能是:
sshServer.setFileSystemFactory(new VirtualFileSystemFactory(FileSystems.getDefault().getPath(rootDir)));
正在尝试使用 Java 中嵌入的 Apache Mina SSHD 为用户设置主目录。
这两种解决方案在 1.0 in-
中均已弃用
在 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);
}
});
找到了。
我不得不使用 VirtualFileSystemFactory
class.
这是结果:
VirtualFileSystemFactory fsFactory = new VirtualFileSystemFactory();
fsFactory.setUserHomeDir(userName, realDirectory);
sshd.setFileSystemFactory(fsFactory);
注意:
如果您使用 OS X 或 linux,请不要忘记 chmod
您的路径首先.
对于 v1.2.0 (if Java 7) / v1.3.0 (if Java 8) 和 java.nio.file.Path 用法,解决方案可能是:
sshServer.setFileSystemFactory(new VirtualFileSystemFactory(FileSystems.getDefault().getPath(rootDir)));