Java ApacheFTPServer——限制像“DELE”这样的命令
我正在使用ApacheMina FTPServer。如中所述,我正在扩展DefaultFtplet类。我将打印SOP放在文档中提到的一些事件中,如onConnect等,一切正常 现在,我想限制DELE命令,所以根据文档,我已经覆盖了onDeleteStart方法,但是客户端在没有任何消息的情况下挂起并断开连接 由于我无法找到此类场景的任何更具体的文档,以下是我的代码:Java ApacheFTPServer——限制像“DELE”这样的命令,java,ftp-server,Java,Ftp Server,我正在使用ApacheMina FTPServer。如中所述,我正在扩展DefaultFtplet类。我将打印SOP放在文档中提到的一些事件中,如onConnect等,一切正常 现在,我想限制DELE命令,所以根据文档,我已经覆盖了onDeleteStart方法,但是客户端在没有任何消息的情况下挂起并断开连接 由于我无法找到此类场景的任何更具体的文档,以下是我的代码: @Override public FtpletResult onDeleteStart(FtpSession session,
@Override
public FtpletResult onDeleteStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
System.out.println("\n\n\nonDeleteStart\n\n\n");
FtpReply reply = new FtpReply() {
@Override
public String getMessage() {
return "Deletion not supported";
}
@Override
public int getCode() {
return FtpReply.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN;
}
};
session.write(reply); // Not sure if this is the right way!
return FtpletResult.SKIP;
}
请让我知道我在这里错过了什么,或者这是正确的方式吗
客户端ftp命令行,WinSCP没有从getMessage获取消息,挂起并稍后断开连接您可以使用DefaultFtpReply而不是创建新的FtpReply
FtpReply reply = new DefaultFtpReply(FtpReply.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN,
"Deletion not supported");
session.write(reply );