/** * Aptana Studio * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.filesystem.secureftp.internal; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import com.aptana.filesystem.secureftp.SecureUtils; import com.enterprisedt.net.ftp.ssh.SSHFTPPublicKey; import com.enterprisedt.net.ftp.ssh.SSHFTPValidator; /** * @author Max Stepanov * */ public class SSHHostValidator extends SSHFTPValidator { /** * */ public SSHHostValidator() { String ssh_home = SecureUtils.getSSH_HOME(); File knownHosts = new File(ssh_home, "known_hosts"); //$NON-NLS-1$ if (knownHosts.exists() && knownHosts.isFile()) { InputStream fin = null; try { loadKnownHosts(fin = new FileInputStream(knownHosts)); } catch (Exception e) { SecureFTPPlugin.log(new Status(IStatus.WARNING, SecureFTPPlugin.PLUGIN_ID, Messages.SSHHostValidator_FailedLoadKnownHosts, e)); } finally { if (fin != null) { try { fin.close(); } catch (IOException ignore) { ignore.getCause(); } } } } } /* (non-Javadoc) * @see com.enterprisedt.net.ftp.ssh.SSHFTPValidator#validate(java.lang.String, com.enterprisedt.net.ftp.ssh.SSHFTPPublicKey, boolean) */ @Override protected boolean validate(String hostSpecifier, SSHFTPPublicKey publicKey, boolean hostKnown) { if (!hostKnown) { return true; } return super.validate(hostSpecifier, publicKey, hostKnown); } }