/** * @return 判断是否登入成功 * */ public boolean ftpLogin() { boolean isLogin = false; FTPClientConfig ftpClientConfig = new FTPClientConfig(); ftpClientConfig.setServerTimeZoneId(TimeZone.getDefault().getID()); this.ftpClient.setControlEncoding("GBK"); this.ftpClient.configure(ftpClientConfig); try { if (this.intPort > 0) { this.ftpClient.connect(this.strIp, this.intPort); } else { this.ftpClient.connect(this.strIp); } // FTP服务器连接回答 int reply = this.ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { this.ftpClient.disconnect(); System.out.println("登录FTP服务失败!"); return isLogin; } this.ftpClient.login(this.user, this.password); // 设置传输协议 this.ftpClient.enterLocalPassiveMode(); this.ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); System.out.println("恭喜" + this.user + "成功登陆FTP服务器"); //logger.info("恭喜" + this.user + "成功登陆FTP服务器"); isLogin = true; } catch (Exception e) { e.printStackTrace(); System.out.println(this.user + "登录FTP服务失败!" + e.getMessage()); //logger.error(this.user + "登录FTP服务失败!" + e.getMessage()); } this.ftpClient.setBufferSize(1024 * 2); this.ftpClient.setDataTimeout(30 * 1000); return isLogin; }
/** * No-arg constructor. */ public FtpZosClient() { _ftpClient = new FTPClient(); FTPClientConfig ftpConf = new FTPClientConfig(FTPClientConfig.SYST_MVS); ftpConf.setServerTimeZoneId("GMT"); _ftpClient.configure(ftpConf); }
/** * Login to the FTP Server */ public boolean login() { FTPClientConfig fcc = new FTPClientConfig(); fcc.setServerTimeZoneId(TimeZone.getDefault().getID()); ftpClient.setControlEncoding(encoding); ftpClient.configure(fcc); try { if (port > 0) { ftpClient.connect(hostname, port); } else { ftpClient.connect(hostname); } // check reply code int code = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(code)) { ftpClient.disconnect(); logger.error("Login FTP Server is failure!"); return false; } if(ftpClient.login(username, password)){ // setting this.ftpClient.enterLocalPassiveMode(); this.ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); this.ftpClient.setBufferSize(BUFFER_SIZE); this.ftpClient.setDataTimeout(TIMEOUT); // logger.info(username + " successfully logined to the FTP server."); return true; }else{ throw new Exception("Please check your username and password."); } } catch (Exception e) { logger.error(username + " failed to login to the FTP server", e); } return false; }
private static void configureClient(FileSystemOptions fileSystemOptions, FTPClient client) { String key = FtpFileSystemConfigBuilder.getInstance().getEntryParser(fileSystemOptions); if (key != null) { FTPClientConfig config = new FTPClientConfig(key); String serverLanguageCode = FtpFileSystemConfigBuilder.getInstance().getServerLanguageCode(fileSystemOptions); if (serverLanguageCode != null) { config.setServerLanguageCode(serverLanguageCode); } String defaultDateFormat = FtpFileSystemConfigBuilder.getInstance().getDefaultDateFormat(fileSystemOptions); if (defaultDateFormat != null) { config.setDefaultDateFormatStr(defaultDateFormat); } String recentDateFormat = FtpFileSystemConfigBuilder.getInstance().getRecentDateFormat(fileSystemOptions); if (recentDateFormat != null) { config.setRecentDateFormatStr(recentDateFormat); } String serverTimeZoneId = FtpFileSystemConfigBuilder.getInstance().getServerTimeZoneId(fileSystemOptions); if (serverTimeZoneId != null) { config.setServerTimeZoneId(serverTimeZoneId); } String[] shortMonthNames = FtpFileSystemConfigBuilder.getInstance().getShortMonthNames(fileSystemOptions); if (shortMonthNames != null) { StringBuilder shortMonthNamesStr = new StringBuilder(BUFSZ); for (int i = 0; i < shortMonthNames.length; i++) { if (shortMonthNamesStr.length() > 0) { shortMonthNamesStr.append("|"); } shortMonthNamesStr.append(shortMonthNames[i]); } config.setShortMonthNames(shortMonthNamesStr.toString()); } client.configure(config); } }
private FTPClientConfig createConfig() { FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_UNIX); config.setServerTimeZoneId("Europe/Paris"); return config; }
/** * Implementation of the {@link Configurable Configurable} * interface. Configures this parser by delegating to the * underlying Configurable FTPTimestampParser implementation, ' * passing it the supplied {@link FTPClientConfig FTPClientConfig} * if that is non-null or a default configuration defined by * each concrete subclass. * * @param config the configuration to be used to configure this parser. * If it is null, a default configuration defined by * each concrete subclass is used instead. */ // @Override public void configure(FTPClientConfig config) { if (this.timestampParser instanceof Configurable) { FTPClientConfig defaultCfg = getDefaultConfiguration(); if (config != null) { if (null == config.getDefaultDateFormatStr()) { config.setDefaultDateFormatStr(defaultCfg.getDefaultDateFormatStr()); } if (null == config.getRecentDateFormatStr()) { config.setRecentDateFormatStr(defaultCfg.getRecentDateFormatStr()); } ((Configurable)this.timestampParser).configure(config); } else { ((Configurable)this.timestampParser).configure(defaultCfg); } } }
/** * This constructor allows the creation of a VMSVersioningFTPEntryParser * object with something other than the default configuration. * * @param config The {@link FTPClientConfig configuration} object used to * configure this parser. * @exception IllegalArgumentException * Thrown if the regular expression is unparseable. Should not be seen * under normal conditions. It it is seen, this is a sign that * <code>REGEX</code> is not a valid regular expression. * @since 1.4 */ public VMSVersioningFTPEntryParser(FTPClientConfig config) { super(); configure(config); try { //_preparse_matcher_ = new Perl5Matcher(); _preparse_pattern_ = Pattern.compile(PRE_PARSE_REGEX); } catch (PatternSyntaxException pse) { throw new IllegalArgumentException ( "Unparseable regex supplied: " + PRE_PARSE_REGEX); } }
public FTPListService(final FTPSession session, final HostPasswordStore keychain, final LoginCallback prompt, final String system, final TimeZone zone) { this.session = session; // Directory listing parser depending on response for SYST command final CompositeFileEntryParser parser = new FTPParserSelector().getParser(system, zone); this.implementations.put(Command.list, new FTPDefaultListService(session, keychain, prompt, parser, Command.list)); if(PreferencesFactory.get().getBoolean("ftp.command.stat")) { if(StringUtils.isNotBlank(system)) { if(!system.toUpperCase(Locale.ROOT).contains(FTPClientConfig.SYST_NT)) { // Workaround for #5572. this.implementations.put(Command.stat, new FTPStatListService(session, parser)); } } else { this.implementations.put(Command.stat, new FTPStatListService(session, parser)); } } if(PreferencesFactory.get().getBoolean("ftp.command.mlsd")) { this.implementations.put(Command.mlsd, new FTPMlsdListService(session, keychain, prompt)); } if(PreferencesFactory.get().getBoolean("ftp.command.lista")) { this.implementations.put(Command.lista, new FTPDefaultListService(session, keychain, prompt, parser, Command.lista)); } }
/** * Implementation of the {@link Configurable Configurable} * interface. Configures this parser by delegating to the * underlying Configurable FTPTimestampParser implementation, ' * passing it the supplied {@link FTPClientConfig FTPClientConfig} * if that is non-null or a default configuration defined by * each concrete subclass. * * @param config the configuration to be used to configure this parser. * If it is null, a default configuration defined by * each concrete subclass is used instead. */ public void configure(FTPClientConfig config) { if (this.timestampParser instanceof Configurable) { FTPClientConfig defaultCfg = getDefaultConfiguration(); if (config != null) { if (null == config.getDefaultDateFormatStr()) { config.setDefaultDateFormatStr(defaultCfg.getDefaultDateFormatStr()); } if (null == config.getRecentDateFormatStr()) { config.setRecentDateFormatStr(defaultCfg.getRecentDateFormatStr()); } ((Configurable)this.timestampParser).configure(config); } else { ((Configurable)this.timestampParser).configure(defaultCfg); } } }
public void configure(FTPClientConfig config) { if(this.timestampParser instanceof Configurable) { FTPClientConfig defaultCfg = this.getDefaultConfiguration(); if(config != null) { if(config.getDefaultDateFormatStr() == null) { config.setDefaultDateFormatStr(defaultCfg.getDefaultDateFormatStr()); } if(config.getRecentDateFormatStr() == null) { config.setRecentDateFormatStr(defaultCfg.getRecentDateFormatStr()); } ((Configurable)this.timestampParser).configure(config); } else { ((Configurable)this.timestampParser).configure(defaultCfg); } } }
/** * Implementation of the {@link Configurable Configurable} * interface. Configures this parser by delegating to the * underlying Configurable FTPTimestampParser implementation, ' * passing it the supplied {@link FTPClientConfig FTPClientConfig} * if that is non-null or a default configuration defined by * each concrete subclass. * * @param config the configuration to be used to configure this parser. * If it is null, a default configuration defined by * each concrete subclass is used instead. */ @Override public void configure(FTPClientConfig config) { if (this.timestampParser instanceof Configurable) { FTPClientConfig defaultCfg = getDefaultConfiguration(); if (config != null) { if (null == config.getDefaultDateFormatStr()) { config.setDefaultDateFormatStr(defaultCfg.getDefaultDateFormatStr()); } if (null == config.getRecentDateFormatStr()) { config.setRecentDateFormatStr(defaultCfg.getRecentDateFormatStr()); } ((Configurable) this.timestampParser).configure(config); } else { ((Configurable) this.timestampParser).configure(defaultCfg); } } }
@Override protected void setUp() throws Exception { super.setUp(); TEST_FILE1.createNewFile(); assertTrue(TEST_FILE1.exists()); testData = ("TESTDATA").getBytes("UTF-8"); TestUtil.writeDataToFile(TEST_FILE, testData); assertTrue(TEST_FILE.exists()); FTPClientConfig config = new FTPClientConfig("UNIX"); client.configure(config); client.login(ADMIN_USERNAME, ADMIN_PASSWORD); }
/** * 配置FTP连接参数 * * @author wangwei */ public FTPClientConfig getFTPClientConfig() throws Exception { String systemKey = FTPClientConfig.SYST_UNIX; String serverLanguageCode = "zh"; FTPClientConfig conf = new FTPClientConfig(systemKey); conf.setServerLanguageCode(serverLanguageCode); conf.setDefaultDateFormatStr("yyyy-MM-dd"); return conf; }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * @return the default configuration for this parser. */ @Override protected FTPClientConfig getDefaultConfiguration() { return new FTPClientConfig( FTPClientConfig.SYST_UNIX, DEFAULT_DATE_FORMAT, DEFAULT_RECENT_DATE_FORMAT, null, null, null); }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * @return the default configuration for this parser. */ @Override protected FTPClientConfig getDefaultConfiguration() { return new FTPClientConfig( FTPClientConfig.SYST_OS2, DEFAULT_DATE_FORMAT, null, null, null, null); }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * @return the default configuration for this parser. */ @Override protected FTPClientConfig getDefaultConfiguration() { return new FTPClientConfig(FTPClientConfig.SYST_NETWARE, DEFAULT_DATE_FORMAT, DEFAULT_RECENT_DATE_FORMAT, null, null, null); }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * @return the default configuration for this parser. */ @Override protected FTPClientConfig getDefaultConfiguration() { return new FTPClientConfig( FTPClientConfig.SYST_VMS, DEFAULT_DATE_FORMAT, null, null, null, null); }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * @return the default configuration for this parser. */ @Override protected FTPClientConfig getDefaultConfiguration() { return new FTPClientConfig( FTPClientConfig.SYST_OS400, DEFAULT_DATE_FORMAT, null, null, null, null); }
/** * Implementation of the {@link Configurable Configurable} * interface. Configures this <code>FTPTimestampParser</code> according * to the following logic: * <p> * Set up the {@link FTPClientConfig#setDefaultDateFormatStr(String) defaultDateFormat} * and optionally the {@link FTPClientConfig#setRecentDateFormatStr(String) recentDateFormat} * to values supplied in the config based on month names configured as follows: * </p><p><ul> * <li>If a {@link FTPClientConfig#setShortMonthNames(String) shortMonthString} * has been supplied in the <code>config</code>, use that to parse parse timestamps.</li> * <li>Otherwise, if a {@link FTPClientConfig#setServerLanguageCode(String) serverLanguageCode} * has been supplied in the <code>config</code>, use the month names represented * by that {@link FTPClientConfig#lookupDateFormatSymbols(String) language} * to parse timestamps.</li> * <li>otherwise use default English month names</li> * </ul></p><p> * Finally if a {@link org.apache.commons.net.ftp.FTPClientConfig#setServerTimeZoneId(String) serverTimeZoneId} * has been supplied via the config, set that into all date formats that have * been configured. * </p> */ // @Override public void configure(FTPClientConfig config) { DateFormatSymbols dfs = null; String languageCode = config.getServerLanguageCode(); String shortmonths = config.getShortMonthNames(); if (shortmonths != null) { dfs = FTPClientConfig.getDateFormatSymbols(shortmonths); } else if (languageCode != null) { dfs = FTPClientConfig.lookupDateFormatSymbols(languageCode); } else { dfs = FTPClientConfig.lookupDateFormatSymbols("en"); } String recentFormatString = config.getRecentDateFormatStr(); if (recentFormatString == null) { this.recentDateFormat = null; } else { this.recentDateFormat = new SimpleDateFormat(recentFormatString, dfs); this.recentDateFormat.setLenient(false); } String defaultFormatString = config.getDefaultDateFormatStr(); if (defaultFormatString == null) { throw new IllegalArgumentException("defaultFormatString cannot be null"); } this.defaultDateFormat = new SimpleDateFormat(defaultFormatString, dfs); this.defaultDateFormat.setLenient(false); setServerTimeZone(config.getServerTimeZoneId()); this.lenientFutureDates = config.isLenientFutureDates(); }
/** * Creates an NT FTP parser: if the config exists, and the system key equals * {@link FTPClientConfig.SYST_NT} then a plain {@link org.apache.commons.net.ftp.parser.NTFTPEntryParser} is used, * otherwise a composite of {@link org.apache.commons.net.ftp.parser.NTFTPEntryParser} and {@link org.apache.commons.net.ftp.parser.UnixFTPEntryParser} is used. * @param config the config to use, may be {@code null} * @return the parser */ private FTPFileEntryParser createNTFTPEntryParser(FTPClientConfig config) { if (config != null && FTPClientConfig.SYST_NT.equals( config.getServerSystemKey())) { return new NTFTPEntryParser(config); } else { return new CompositeFileEntryParser(new FTPFileEntryParser[] { new NTFTPEntryParser(config), new UnixFTPEntryParser(config) }); } }
/** * Creates an OS400 FTP parser: if the config exists, and the system key equals * {@link FTPClientConfig.SYST_OS400} then a plain {@link org.apache.commons.net.ftp.parser.OS400FTPEntryParser} is used, * otherwise a composite of {@link org.apache.commons.net.ftp.parser.OS400FTPEntryParser} and {@link org.apache.commons.net.ftp.parser.UnixFTPEntryParser} is used. * @param config the config to use, may be {@code null} * @return the parser */ private FTPFileEntryParser createOS400FTPEntryParser(FTPClientConfig config) { if (config != null && FTPClientConfig.SYST_OS400.equals(config.getServerSystemKey())) { return new OS400FTPEntryParser(config); } else { return new CompositeFileEntryParser(new FTPFileEntryParser[] { new OS400FTPEntryParser(config), new UnixFTPEntryParser(config) }); } }
/** * This constructor allows the creation of an NTFTPEntryParser object * with something other than the default configuration. * * @param config The {@link FTPClientConfig configuration} object used to * configure this parser. * @exception IllegalArgumentException * Thrown if the regular expression is unparseable. Should not be seen * under normal conditions. It it is seen, this is a sign that * <code>REGEX</code> is not a valid regular expression. * @since 1.4 */ public NTFTPEntryParser(FTPClientConfig config) { super(REGEX); configure(config); FTPClientConfig config2 = new FTPClientConfig( FTPClientConfig.SYST_NT, DEFAULT_DATE_FORMAT2, null, null, null, null); config2.setDefaultDateFormatStr(DEFAULT_DATE_FORMAT2); this.timestampParser = new FTPTimestampParserImpl(); ((Configurable)this.timestampParser).configure(config2); }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * @return the default configuration for this parser. */ @Override public FTPClientConfig getDefaultConfiguration() { return new FTPClientConfig( FTPClientConfig.SYST_NT, DEFAULT_DATE_FORMAT, null, null, null, null); }
@Override public void configure(final FTPClientConfig config) { for(FTPFileEntryParser parser : parsers) { if(parser instanceof Configurable) { ((Configurable) parser).configure(config); } } }
/** * Defines a default configuration to be used when this class is * instantiated without a {@link FTPClientConfig FTPClientConfig} * parameter being specified. * * @return the default configuration for this parser. */ @Override protected FTPClientConfig getDefaultConfiguration() { final FTPClientConfig config = new FTPClientConfig( FTPClientConfig.SYST_UNIX, FTPTimestampParser.DEFAULT_SDF, FTPTimestampParser.DEFAULT_RECENT_SDF, null, null, null); config.setLenientFutureDates(true); return config; }
public CompositeFileEntryParser createFileEntryParser(final String system, final TimeZone timezone) throws ParserInitializationException { if(null != system) { String ukey = system.toUpperCase(Locale.ROOT); if(ukey.contains(FTPClientConfig.SYST_UNIX)) { return this.createUnixFTPEntryParser(timezone); } else if(ukey.contains(FTPClientConfig.SYST_VMS)) { throw new ParserInitializationException(String.format("\"%s\" is not currently a supported system.", system)); } else if(ukey.contains(FTPClientConfig.SYST_NETWARE)) { return this.createNetwareFTPEntryParser(timezone); } else if(ukey.contains(FTPClientConfig.SYST_NT)) { return this.createNTFTPEntryParser(timezone); } else if(ukey.contains(FTPClientConfig.SYST_OS2)) { return this.createOS2FTPEntryParser(timezone); } else if(ukey.contains(FTPClientConfig.SYST_OS400)) { return this.createOS400FTPEntryParser(timezone); } else if(ukey.contains(FTPClientConfig.SYST_MVS)) { return this.createUnixFTPEntryParser(timezone); } } // Defaulting to UNIX parser return this.createUnixFTPEntryParser(timezone); }
private CompositeFileEntryParser createNetwareFTPEntryParser(final TimeZone timezone) { return new CompositeFileEntryParser(Arrays.asList( new NetwareFTPEntryParser() { @Override protected FTPClientConfig getDefaultConfiguration() { final FTPClientConfig config = super.getDefaultConfiguration(); config.setServerTimeZoneId(timezone.getID()); return config; } }, this.createUnixFTPEntryParser(timezone) )); }
private CompositeFileEntryParser createNTFTPEntryParser(final TimeZone timezone) { return new CompositeFileEntryParser(Arrays.asList( new NTFTPEntryParser() { @Override public FTPClientConfig getDefaultConfiguration() { final FTPClientConfig config = super.getDefaultConfiguration(); config.setServerTimeZoneId(timezone.getID()); return config; } }, this.createUnixFTPEntryParser(timezone) )); }
private CompositeFileEntryParser createOS2FTPEntryParser(final TimeZone timezone) { return new CompositeFileEntryParser(Arrays.asList( new OS2FTPEntryParser() { @Override protected FTPClientConfig getDefaultConfiguration() { final FTPClientConfig config = super.getDefaultConfiguration(); config.setServerTimeZoneId(timezone.getID()); return config; } } )); }
private CompositeFileEntryParser createOS400FTPEntryParser(final TimeZone timezone) { return new CompositeFileEntryParser(Arrays.asList( new OS400FTPEntryParser() { @Override protected FTPClientConfig getDefaultConfiguration() { final FTPClientConfig config = super.getDefaultConfiguration(); config.setServerTimeZoneId(timezone.getID()); return config; } }, this.createUnixFTPEntryParser(timezone) )); }
private CompositeFileEntryParser createMVSEntryParser(final TimeZone timezone) { return new CompositeFileEntryParser(Arrays.asList( new MVSFTPEntryParser() { @Override protected FTPClientConfig getDefaultConfiguration() { final FTPClientConfig config = super.getDefaultConfiguration(); config.setServerTimeZoneId(timezone.getID()); return config; } } )); }
/** * Implementation of the {@link Configurable Configurable} * interface. Configures this <code>FTPTimestampParser</code> according * to the following logic: * <p> * Set up the {@link FTPClientConfig#setDefaultDateFormatStr(java.lang.String) defaultDateFormat} * and optionally the {@link FTPClientConfig#setRecentDateFormatStr(String) recentDateFormat} * to values supplied in the config based on month names configured as follows: * </p><p><ul> * <li>If a {@link FTPClientConfig#setShortMonthNames(String) shortMonthString} * has been supplied in the <code>config</code>, use that to parse parse timestamps.</li> * <li>Otherwise, if a {@link FTPClientConfig#setServerLanguageCode(String) serverLanguageCode} * has been supplied in the <code>config</code>, use the month names represented * by that {@link FTPClientConfig#lookupDateFormatSymbols(String) language} * to parse timestamps.</li> * <li>otherwise use default English month names</li> * </ul></p><p> * Finally if a {@link org.apache.commons.net.ftp.FTPClientConfig#setServerTimeZoneId(String) serverTimeZoneId} * has been supplied via the config, set that into all date formats that have * been configured. * </p> */ public void configure(FTPClientConfig config) { DateFormatSymbols dfs = null; String languageCode = config.getServerLanguageCode(); String shortmonths = config.getShortMonthNames(); if (shortmonths != null) { dfs = FTPClientConfig.getDateFormatSymbols(shortmonths); } else if (languageCode != null) { dfs = FTPClientConfig.lookupDateFormatSymbols(languageCode); } else { dfs = FTPClientConfig.lookupDateFormatSymbols("en"); } String recentFormatString = config.getRecentDateFormatStr(); if (recentFormatString == null) { this.recentDateFormat = null; } else { this.recentDateFormat = new SimpleDateFormat(recentFormatString, dfs); this.recentDateFormat.setLenient(false); } String defaultFormatString = config.getDefaultDateFormatStr(); if (defaultFormatString == null) { throw new IllegalArgumentException("defaultFormatString cannot be null"); } this.defaultDateFormat = new SimpleDateFormat(defaultFormatString, dfs); this.defaultDateFormat.setLenient(false); setServerTimeZone(config.getServerTimeZoneId()); this.lenientFutureDates = config.isLenientFutureDates(); }