Я использую Apache Mina FTPServer. Как упоминалось в documentation, я расширяю класс DefaultFtplet
. Я помещаю отпечатки (SOP) в некоторые события, упомянутые в документации, например onConnect
и т. Д., И все работает нормально.Apache FTPServer - ограничивающие команды типа «DELE»
Теперь я хочу ограничить DELE
команду, чтобы в документации я переопределен метод onDeleteStart
, но клиент получает повешен и отсоединение без какой-либо из моих сообщений.
Поскольку я не смог найти более конкретную документацию по такому сценарию, после мой код:
@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;
}
Пожалуйста, дайте мне знать, что я здесь отсутствует, или это правильный способ сделать даже ?
Client (ftp
командной строки, и WinSCP
) не получает сообщение от getMessage()
, и висит, а затем отсоединять