由于项目需要加密上传文件,使用Linux系统自带的SFTP服务很不方便。因此需要自己实现一套SFTP服务。这里使用的是Apache的开源软件MINA实现的SSHD协议。具体网址如下:http://mina.apache.org/sshd-project/embedding_ssh.html
需要引用一些Apache的开源架包,
服务器段具体实现如下
package com.song.SftpServer;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.sshd.SshServer;
import org.apache.sshd.client.UserAuth;
import org.apache.sshd.common.NamedFactory;
import org.apache.sshd.common.keyprovider.FileKeyPairProvider;
import org.apache.sshd.server.Command;
import org.apache.sshd.server.PasswordAuthenticator;
import org.apache.sshd.server.auth.UserAuthNone;
import org.apache.sshd.server.command.ScpCommandFactory;
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
import org.apache.sshd.server.sftp.SftpSubsystem;
impo