Search in sources :

Example 1 with CrawlerLoginFailureException

use of org.codelibs.fess.crawler.exception.CrawlerLoginFailureException in project fess-crawler by codelibs.

the class FtpClient method getClient.

protected FTPClient getClient(final FtpInfo info) throws IOException {
    FTPClient ftpClient = ftpClientQueue.poll();
    if (ftpClient != null) {
        if (ftpClient.isAvailable()) {
            return ftpClient;
        }
        try {
            ftpClient.disconnect();
        } catch (final Exception e) {
            logger.debug("Failed to disconnect " + info.toUrl(), e);
        }
    }
    try {
        ftpClient = new FTPClient();
        if (activeExternalHost != null) {
            ftpClient.setActiveExternalIPAddress(activeExternalHost);
        }
        if (passiveLocalHost != null) {
            ftpClient.setPassiveLocalIPAddress(passiveLocalHost);
        }
        if (reportActiveExternalHost != null) {
            ftpClient.setReportActiveExternalIPAddress(reportActiveExternalHost);
        }
        if (activeMinPort != -1 && activeMaxPort != -1) {
            ftpClient.setActivePortRange(activeMinPort, activeMaxPort);
        }
        ftpClient.setAutodetectUTF8(autodetectEncoding);
        ftpClient.setConnectTimeout(connectTimeout);
        ftpClient.setDataTimeout(dataTimeout);
        ftpClient.setControlEncoding(controlEncoding);
        ftpClient.setBufferSize(bufferSize);
        if (passiveNatWorkaround) {
            ftpClient.setPassiveNatWorkaroundStrategy(new NatServerResolverImpl(ftpClient));
        }
        ftpClient.setUseEPSVwithIPv4(useEPSVwithIPv4);
        ftpClient.configure(ftpClientConfig);
        ftpClient.connect(info.getHost(), info.getPort());
        validateRequest(ftpClient);
        final FtpAuthentication auth = ftpAuthenticationHolder.get(info.toUrl());
        if (auth != null) {
            if (!ftpClient.login(auth.getUsername(), auth.getPassword())) {
                throw new CrawlerLoginFailureException("Login Failure: " + auth.getUsername() + " for " + info.toUrl());
            }
        }
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
        return ftpClient;
    } catch (final IOException e) {
        if (ftpClient != null) {
            try {
                ftpClient.disconnect();
            } catch (final Exception e1) {
                logger.debug("Failed to disconnect " + info.toUrl(), e);
            }
        }
        throw e;
    }
}
Also used : CrawlerLoginFailureException(org.codelibs.fess.crawler.exception.CrawlerLoginFailureException) NatServerResolverImpl(org.apache.commons.net.ftp.FTPClient.NatServerResolverImpl) IOException(java.io.IOException) FTPClient(org.apache.commons.net.ftp.FTPClient) CrawlingAccessException(org.codelibs.fess.crawler.exception.CrawlingAccessException) CrawlerLoginFailureException(org.codelibs.fess.crawler.exception.CrawlerLoginFailureException) MaxLengthExceededException(org.codelibs.fess.crawler.exception.MaxLengthExceededException) CrawlerSystemException(org.codelibs.fess.crawler.exception.CrawlerSystemException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) ChildUrlsException(org.codelibs.fess.crawler.exception.ChildUrlsException)

Aggregations

IOException (java.io.IOException)1 MalformedURLException (java.net.MalformedURLException)1 FTPClient (org.apache.commons.net.ftp.FTPClient)1 NatServerResolverImpl (org.apache.commons.net.ftp.FTPClient.NatServerResolverImpl)1 ChildUrlsException (org.codelibs.fess.crawler.exception.ChildUrlsException)1 CrawlerLoginFailureException (org.codelibs.fess.crawler.exception.CrawlerLoginFailureException)1 CrawlerSystemException (org.codelibs.fess.crawler.exception.CrawlerSystemException)1 CrawlingAccessException (org.codelibs.fess.crawler.exception.CrawlingAccessException)1 MaxLengthExceededException (org.codelibs.fess.crawler.exception.MaxLengthExceededException)1