From 4c28da4d8a8d84823854b2cf19a22f692fad43e9 Mon Sep 17 00:00:00 2001 Date: Mon, 21 Sep 2020 20:55:58 +0800 --- .../org/apache/ftpserver/impl/FtpIoSession.java | 15 +++++++++++++++ .../ftpserver/listener/nio/FtpHandlerAdapter.java | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java b/src/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java index 9f79c3a..4b8ae06 100644 --- a/src/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java +++ b/src/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java @@ -37,6 +37,7 @@ import org.apache.ftpserver.ftplet.FtpSession; import org.apache.ftpserver.ftplet.Structure; import org.apache.ftpserver.ftplet.User; import org.apache.ftpserver.listener.Listener; +import org.apache.mina.core.filterchain.IoFilter; import org.apache.mina.core.filterchain.IoFilterChain; import org.apache.mina.core.future.CloseFuture; import org.apache.mina.core.future.ReadFuture; @@ -876,4 +877,18 @@ public class FtpIoSession implements IoSession { public void updateThroughput(long currentTime, boolean force) { wrappedSession.updateThroughput(currentTime, force); } + + public boolean isSecured() { + // If the session does not have a SslFilter, we can return false + IoFilterChain chain = getFilterChain(); + + IoFilter sslFilter = chain.get(SslFilter.class); + + if (sslFilter != null) { + // Get the SslHandler from the SslFilter + return ((SslFilter)sslFilter).isSslStarted(this); + } else { + return false; + } + } } diff --git a/src/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java b/src/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java index 5899784..776a78e 100644 --- a/src/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java +++ b/src/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java @@ -99,4 +99,7 @@ public class FtpHandlerAdapter implements IoHandler { } + public void inputClosed(IoSession session) throws Exception { + session.close(true); + } } -- 2.23.0