Here is my code....rather trivail usage case.


import java.io.File;

import org.apache.ftpserver.FtpServer;
import org.apache.ftpserver.FtpServerFactory;
import org.apache.ftpserver.listener.ListenerFactory;
import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;

import common.CommonConstants;


public class ApacheFtpServer{
        private FtpServer server = null;


        public ApacheFtpServer(int port) throws Exception{
                initialize(port);
        }

        private void initialize(int port) throws Exception{
                FtpServerFactory serverFactory = new FtpServerFactory();

        ListenerFactory factory = new ListenerFactory();

        // set the port of the listener
        factory.setPort(port);

        // define SSL configuration
        //SslConfigurationFactory ssl = new SslConfigurationFactory();
        //ssl.setKeystoreFile(new 
File("support/apacheFtpServer/ftpserver.jks"));
        //ssl.setKeystorePassword("password");

        // set the SSL configuration for the listener
        //factory.setSslConfiguration(ssl.createSslConfiguration());
        //factory.setImplicitSsl(true);

        // replace the default listener
        serverFactory.addListener("default", factory.createListener());

        PropertiesUserManagerFactory userManagerFactory = new 
PropertiesUserManagerFactory();
        userManagerFactory.setFile(new 
File(CommonConstants.FTP_USERS_PROPERTIES_FILE));
        userManagerFactory.setPasswordEncryptor(new ClearTextPasswordEncryptor 
());

        serverFactory.setUserManager(userManagerFactory.createUserManager());

        // start the server
        server = serverFactory.createServer();

        server.start();
        }

        public void suspend() throws Exception{
                server.suspend();
        }

        public void resume() throws Exception{
                server.resume();
        }

        public void stop() throws Exception{
                server.stop();
        }



    public static void main(String[] args) throws Exception {
        new ApacheFtpServer(CommonConstants.FTP_SERVER_DEFAULT_PORT);
    }

}



-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Thursday, January 22, 2009 12:32 PM
To: [email protected]
Subject: Re: IOException on ftp client disconnect

You also get something similar using filezilla in SSL mode when it
disconnects:


[DEBUG] 2009-01-19 12:04:40,288 [] [] Unexpected exception from
SSLEngine.closeInbound().
javax.net.ssl.SSLException: Inbound closed before receiving peer's
close_notify: possible truncation attack?
      at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
      at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1356)
      at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1324)
      at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1263)
      at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155)
      at
org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386)
      at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
      at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
      at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
      at
org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.sessionClosed(DefaultIoFilterChain.java:598)
      at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
      at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:373)
      at
org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:229)
      at
org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:485)
      at
org.apache.mina.core.polling.AbstractPollingIoProcessor.remove(AbstractPollingIoProcessor.java:455)
      at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:58)
      at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:862)
      at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
      at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
      at java.lang.Thread.run(Thread.java:595)
[ INFO] 2009-01-19 12:04:40,289 [gary] [172.25.72.185] CLOSED


Best Regards,

Gary



Reply via email to