Package org.apache.ftpserver.interfaces

Examples of org.apache.ftpserver.interfaces.DataConnectionConfiguration


            }
           
            FtpServerContext ctx = serverContext;
           
            if(ctx != null) {
                DataConnectionConfiguration dcc = session.getListener().getDataConnectionConfiguration();
                if(dcc != null) {
                    dcc.releasePassivePort(port);
                }
            }
           
            servSoc = null;
        }
View Full Code Here


            throw new DataConnectionException("Cannot find an available passive port.");
        }
       
        // open passive server socket and get parameters
        try {
            DataConnectionConfiguration dataCfg = session.getListener().getDataConnectionConfiguration();
            address = dataCfg.getPassiveAddress();

            if(address == null) {
                address = serverControlAddress;
            }

            if(secure) {
                LOG.debug("Opening SSL passive data connection on address \"{}\" and port {}", address, passivePort);
                SslConfiguration ssl = dataCfg.getSslConfiguration();
                if(ssl == null) {
                    throw new DataConnectionException("Data connection SSL required but not configured.");
                }
                servSoc = createServerSocket(ssl, address, passivePort);
                port = servSoc.getLocalPort();
                LOG.debug("SSL Passive data connection created on address \"{}\" and port {}", address, passivePort);
            }
            else {
                LOG.debug("Opening passive data connection on address \"{}\" and port {}", address, passivePort);
                servSoc = new ServerSocket(passivePort, 0, address);
                port = servSoc.getLocalPort();
                LOG.debug("Passive data connection created on address \"{}\" and port {}", address, passivePort);
            }
            servSoc.setSoTimeout(dataCfg.getIdleTime() * 1000);

            // set different state variables
            passive = true;
            requestTime = System.currentTimeMillis();
           
View Full Code Here

     */
    private synchronized Socket createDataSocket() throws Exception {

        // get socket depending on the selection
        dataSoc = null;
        DataConnectionConfiguration dataConfig = session.getListener().getDataConnectionConfiguration();
        try {
            if(!passive) {
                int localPort = dataConfig.getActiveLocalPort();
                if(secure) {
                    SslConfiguration ssl = dataConfig.getSslConfiguration();
                    if(ssl == null) {
                        throw new FtpException("Data connection SSL not configured");
                    }
                    if(localPort == 0) {
                        dataSoc = createSocket(ssl, address, port, null, localPort, false);
                    }
                    else {
                        InetAddress localAddr = dataConfig.getActiveLocalAddress();
                        dataSoc = createSocket(ssl, address, port, localAddr, localPort, false);
                    }
                }
                else {
                    if(localPort == 0) {
                        dataSoc = new Socket(address, port)
                    }
                    else {
                        InetAddress localAddr = dataConfig.getActiveLocalAddress();
                        dataSoc = new Socket(address, port, localAddr, localPort);
                    }
                }
            } else {
                LOG.debug("Opening passive data connection");
View Full Code Here

        if(ssl != null) {
            builder.addPropertyValue("sslConfiguration", ssl);
        }
       
        Element dataConElm = SpringUtil.getChildElement(element, FtpServerNamespaceHandler.FTPSERVER_NS, "data-connection");
        DataConnectionConfiguration dc = parseDataConnection(dataConElm, ssl);
        builder.addPropertyValue("dataConnectionConfiguration", dc);
       
        Element blacklistElm = SpringUtil.getChildElement(element, FtpServerNamespaceHandler.FTPSERVER_NS, "blacklist");
        if(blacklistElm != null && StringUtils.hasText(blacklistElm.getTextContent())) {
            String[] blocks = blacklistElm.getTextContent().split("[\\s,]+");
View Full Code Here

            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "EPRT", null));
            return
        }
       
        // is port enabled
        DataConnectionConfiguration dataCfg = session.getListener().getDataConnectionConfiguration();
        if(!dataCfg.isActiveEnabled()) {
            session.write(FtpReplyUtil.translate(session, request, context, 510, "EPRT.disabled", null));
            return;
        }
       
        // parse argument
        String host = null;
        String port = null;
        try {
            char delim = arg.charAt(0);
            int lastDelimIdx = arg.indexOf(delim, 3);
            host = arg.substring(3, lastDelimIdx);
            port = arg.substring(lastDelimIdx+1, arg.length() - 1);
        }
        catch(Exception ex) {
            LOG.debug("Exception parsing host and port: " + arg, ex);
            session.write(FtpReplyUtil.translate(session, request, context, 510, "EPRT", null));
            return;
        }
       
        // get data server
        InetAddress dataAddr = null;
        try {
            dataAddr = InetAddress.getByName(host);
        }
        catch(UnknownHostException ex) {
            LOG.debug("Unknown host: " + host, ex);
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "EPRT.host", null));
            return;
        }
       
        // check IP
        if(dataCfg.isActiveIpCheck()) {
          if(session.getRemoteAddress() instanceof InetSocketAddress) {
              InetAddress clientAddr = ((InetSocketAddress)session.getRemoteAddress()).getAddress();
              if(!dataAddr.equals(clientAddr)) {
                  session.write(FtpReplyUtil.translate(session, request, context, 510, "EPRT.mismatch", null));
                  return;
View Full Code Here

            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "PORT", null));
            return
        }

        // is port enabled
        DataConnectionConfiguration dataCfg = session.getListener().getDataConnectionConfiguration();
        if(!dataCfg.isActiveEnabled()) {
            session.write(FtpReplyUtil.translate(session, request, context, 510, "PORT.disabled", null));
            return;
        }
       
        InetSocketAddress address;
        try {
            address = SocketAddressEncoder.decode(request.getArgument());
        } catch(IllegalInetAddressException e) {
            session.write(FtpReplyUtil.translate(session, request, context, 510, "PORT", null));
            return;
        } catch(IllegalPortException e) {
            LOG.debug("Invalid data port: " + request.getArgument(), e);
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_552_REQUESTED_FILE_ACTION_ABORTED_EXCEEDED_STORAGE, "PORT.invalid", null));
            return;
        } catch(UnknownHostException e) {
            LOG.debug("Unknown host", e);
            session.write(FtpReplyUtil.translate(session, request, context, FtpReply.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "PORT.host", null));
            return;
        }
       
        // check IP
        if(dataCfg.isActiveIpCheck()) {
          if(session.getRemoteAddress() instanceof InetSocketAddress) {
            InetAddress clientAddr = ((InetSocketAddress)session.getRemoteAddress()).getAddress();
            if(!address.getAddress().equals(clientAddr)) {
              session.write(FtpReplyUtil.translate(session, request, context, 510, "PORT.mismatch", null));
              return;
View Full Code Here

            }

            FtpServerContext ctx = serverContext;

            if (ctx != null) {
                DataConnectionConfiguration dcc = session.getListener()
                        .getDataConnectionConfiguration();
                if (dcc != null) {
                    dcc.releasePassivePort(port);
                }
            }

            servSoc = null;
        }
View Full Code Here

                    "Cannot find an available passive port.");
        }

        // open passive server socket and get parameters
        try {
            DataConnectionConfiguration dataCfg = session.getListener()
                    .getDataConnectionConfiguration();
            address = dataCfg.getPassiveAddress();

            if (address == null) {
                address = serverControlAddress;
            }

            if (secure) {
                LOG
                        .debug(
                                "Opening SSL passive data connection on address \"{}\" and port {}",
                                address, passivePort);
                SslConfiguration ssl = dataCfg.getSslConfiguration();
                if (ssl == null) {
                    throw new DataConnectionException(
                            "Data connection SSL required but not configured.");
                }
                servSoc = createServerSocket(ssl, address, passivePort);
                port = servSoc.getLocalPort();
                LOG
                        .debug(
                                "SSL Passive data connection created on address \"{}\" and port {}",
                                address, passivePort);
            } else {
                LOG
                        .debug(
                                "Opening passive data connection on address \"{}\" and port {}",
                                address, passivePort);
                servSoc = new ServerSocket(passivePort, 0, address);
                port = servSoc.getLocalPort();
                LOG
                        .debug(
                                "Passive data connection created on address \"{}\" and port {}",
                                address, passivePort);
            }
            servSoc.setSoTimeout(dataCfg.getIdleTime() * 1000);

            // set different state variables
            passive = true;
            requestTime = System.currentTimeMillis();

View Full Code Here

     */
    private synchronized Socket createDataSocket() throws Exception {

        // get socket depending on the selection
        dataSoc = null;
        DataConnectionConfiguration dataConfig = session.getListener()
                .getDataConnectionConfiguration();
        try {
            if (!passive) {
                int localPort = dataConfig.getActiveLocalPort();
                if (secure) {
                    SslConfiguration ssl = dataConfig.getSslConfiguration();
                    if (ssl == null) {
                        throw new FtpException(
                                "Data connection SSL not configured");
                    }
                    if (localPort == 0) {
                        dataSoc = createSocket(ssl, address, port, null,
                                localPort, false);
                    } else {
                        InetAddress localAddr = dataConfig
                                .getActiveLocalAddress();
                        dataSoc = createSocket(ssl, address, port, localAddr,
                                localPort, false);
                    }
                } else {
                    if (localPort == 0) {
                        dataSoc = new Socket(address, port);
                    } else {
                        InetAddress localAddr = dataConfig
                                .getActiveLocalAddress();
                        dataSoc = new Socket(address, port, localAddr,
                                localPort);
                    }
                }
View Full Code Here

            builder.addPropertyValue("sslConfiguration", ssl);
        }

        Element dataConElm = SpringUtil.getChildElement(element,
                FtpServerNamespaceHandler.FTPSERVER_NS, "data-connection");
        DataConnectionConfiguration dc = parseDataConnection(dataConElm, ssl);
        builder.addPropertyValue("dataConnectionConfiguration", dc);

        Element blacklistElm = SpringUtil.getChildElement(element,
                FtpServerNamespaceHandler.FTPSERVER_NS, "blacklist");
        if (blacklistElm != null
View Full Code Here

TOP

Related Classes of org.apache.ftpserver.interfaces.DataConnectionConfiguration

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.