@Override public FileSystemConfigBuilder getConfigBuilder() { return SftpFileSystemConfigBuilder.getInstance(); }
@Override public FileSystemConfigBuilder getConfigBuilder() { return SftpFileSystemConfigBuilder.getInstance(); }
@Override public FileSystemConfigBuilder getConfigBuilder() { return SftpFileSystemConfigBuilder.getInstance(); }
@Override public FileSystemConfigBuilder getConfigBuilder() { return SftpFileSystemConfigBuilder.getInstance(); }
protected SftpFileSystem(final GenericFileName rootName, final Session session, final FileSystemOptions fileSystemOptions) { super(rootName, null, fileSystemOptions); this.session = session; final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); this.connectTimeoutMillis = builder.getConnectTimeoutMillis(fileSystemOptions); }
@Override protected void getAuthenticationData(UserAuthenticationData authenticationData) { super.getAuthenticationData(authenticationData); authenticationData.setData(UserAuthenticationDataWrapper.SSH_KEY, sshKeyFileField.getText().trim().toCharArray()); if (StringUtils.isNotBlank(sshKeyFileField.getText())) { try { SftpFileSystemConfigBuilder.getInstance().setIdentities(getFileSystemOptions(), new File[]{new File(sshKeyFileField.getText())}); //TODO set user auth data file path } catch (FileSystemException e) { e.printStackTrace(); } } }
/** * Returns a file representation * @param filePath The file path * @return a file representation */ public static FileObject resolveFileObject(String filePath) { try { if (filePath.startsWith("sftp://")) { SftpFileSystemConfigBuilder.getInstance() .setStrictHostKeyChecking(opts, "no"); } return getFileSystemManager().resolveFile(filePath, opts); } catch (FileSystemException ex) { return null; } }
/** * 获取SFTP实例 * @param host 主机 * @param port 端口 * @param user 用户 * @param password 密码 * @return * @throws FileSystemException * @throws JSchException */ public static SFTPUtils getInstance(String host, int port, String user, String password) throws FileSystemException, JSchException { FileSystemOptions vfs = new FileSystemOptions(); SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(vfs, "no"); session = SftpClientFactory.createConnection(host, port, user.toCharArray(), password.toCharArray(), vfs); Channel channel = session.openChannel("sftp"); channel.connect(); cs = (ChannelSftp) channel; return new SFTPUtils(); }
public static FileSystemOptions buildSftpOpts(File privateKey, byte[] passPhrase) throws FileSystemException { FileSystemOptions opts = new FileSystemOptions(); SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); builder.setUserDirIsRoot(opts, false); builder.setIdentityInfo(opts, new IdentityInfo(privateKey, passPhrase)); return opts; }
/** * Get the default options for File system * * @return * @throws FileSystemException */ public static FileSystemOptions createDefaultOptions() throws FileSystemException { FileSystemOptions opts = new FileSystemOptions(); // SSH Key checking SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no"); // Root directory set to user home SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, false); // Timeout is count by Milliseconds SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 100000); FtpFileSystemConfigBuilder.getInstance().setPassiveMode(opts, true); FtpFileSystemConfigBuilder.getInstance().setSoTimeout(opts, 100000); FtpsFileSystemConfigBuilder.getInstance().setPassiveMode(opts, true); return opts; } }
/** * Returns a file representation * * @param filePath The file path * @return a file representation * @throws FileSystemException */ public static FileObject resolveFileObject(String filePath) throws FileSystemException { LOGGER.info("Resolving file: {}", filePath); if (filePath.startsWith("sftp://")) { SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); builder.setStrictHostKeyChecking(opts, "no"); builder.setUserDirIsRoot(opts, false); builder.setCompression(opts, "zlib,none"); } else if (filePath.startsWith("smb://")) { } else if (filePath.startsWith("ftp://")) { FtpFileSystemConfigBuilder.getInstance().setPassiveMode(opts, true); } UserAuthenticatorFactory factory = new UserAuthenticatorFactory(); OtrosUserAuthenticator authenticator = factory.getUiUserAuthenticator(persistentAuthStore, sessionAuthStore, filePath, opts); if (pathContainsCredentials(filePath)) { authenticator = null; } return resolveFileObject(filePath, opts, authenticator, persistentAuthStore, sessionAuthStore); }
channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(); final Boolean userDirIsRoot = SftpFileSystemConfigBuilder.getInstance() .getUserDirIsRoot(getFileSystemOptions()); final String workingDirectory = getRootName().getPath(); final String fileNameEncoding = SftpFileSystemConfigBuilder.getInstance() .getFileNameEncoding(getFileSystemOptions());
channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(); final Boolean userDirIsRoot = SftpFileSystemConfigBuilder.getInstance() .getUserDirIsRoot(getFileSystemOptions()); final String workingDirectory = getRootName().getPath(); final String fileNameEncoding = SftpFileSystemConfigBuilder.getInstance() .getFileNameEncoding(getFileSystemOptions());
channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(connectTimeoutMillis); final Boolean userDirIsRoot = SftpFileSystemConfigBuilder.getInstance() .getUserDirIsRoot(getFileSystemOptions()); final String workingDirectory = getRootName().getPath(); final String fileNameEncoding = SftpFileSystemConfigBuilder.getInstance() .getFileNameEncoding(getFileSystemOptions());
@Test public void testDelegatingGood() throws Throwable { final String[] identityPaths = new String[] { "/file1", "/file2", }; final FileSystemOptions opts = new FileSystemOptions(); final DelegatingFileSystemOptionsBuilder delgate = new DelegatingFileSystemOptionsBuilder(fsm); delgate.setConfigClass(opts, "sftp", "userinfo", TrustEveryoneUserInfo.class); delgate.setConfigStrings(opts, "sftp", "identities", identityPaths); assertEquals("sftp.userInfo", SftpFileSystemConfigBuilder.getInstance().getUserInfo(opts).getClass(), TrustEveryoneUserInfo.class); final File identities[] = SftpFileSystemConfigBuilder.getInstance().getIdentities(opts); assertNotNull("sftp.identities", identities); assertEquals("sftp.identities size", identities.length, identityPaths.length); for (int iterIdentities = 0; iterIdentities < identities.length; iterIdentities++) { assertEquals("sftp.identities #" + iterIdentities, identities[iterIdentities].getAbsolutePath(), new File(identityPaths[iterIdentities]).getAbsolutePath()); } }
@Test public void testDelegatingGood() throws Throwable { final String[] identityPaths = new String[] { "/file1", "/file2", }; final FileSystemOptions opts = new FileSystemOptions(); final DelegatingFileSystemOptionsBuilder delgate = new DelegatingFileSystemOptionsBuilder(fsm); delgate.setConfigString(opts, "http", "proxyHost", "proxy"); delgate.setConfigString(opts, "http", "proxyPort", "8080"); delgate.setConfigClass(opts, "sftp", "userinfo", TrustEveryoneUserInfo.class); delgate.setConfigStrings(opts, "sftp", "identities", identityPaths); assertEquals("http.proxyHost", HttpFileSystemConfigBuilder.getInstance().getProxyHost(opts), "proxy"); assertEquals("http.proxyPort", HttpFileSystemConfigBuilder.getInstance().getProxyPort(opts), 8080); assertEquals("sftp.userInfo", SftpFileSystemConfigBuilder.getInstance().getUserInfo(opts).getClass(), TrustEveryoneUserInfo.class); final File identities[] = SftpFileSystemConfigBuilder.getInstance().getIdentities(opts); assertNotNull("sftp.identities", identities); assertEquals("sftp.identities size", identities.length, identityPaths.length); for (int iterIdentities = 0; iterIdentities < identities.length; iterIdentities++) { assertEquals("sftp.identities #" + iterIdentities, identities[iterIdentities].getAbsolutePath(), new File(identityPaths[iterIdentities]).getAbsolutePath()); } }
final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); builder.setStrictHostKeyChecking(fileSystemOptions, "no"); builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo());
@Test public void testDelegatingGood() throws Throwable { final String[] identityPaths = new String[] { "/file1", "/file2", }; final FileSystemOptions opts = new FileSystemOptions(); final DelegatingFileSystemOptionsBuilder delgate = new DelegatingFileSystemOptionsBuilder(fsm); delgate.setConfigString(opts, "http", "proxyHost", "proxy"); delgate.setConfigString(opts, "http", "proxyPort", "8080"); delgate.setConfigClass(opts, "sftp", "userinfo", TrustEveryoneUserInfo.class); delgate.setConfigStrings(opts, "sftp", "identities", identityPaths); assertEquals("http.proxyHost", HttpFileSystemConfigBuilder.getInstance().getProxyHost(opts), "proxy"); assertEquals("http.proxyPort", HttpFileSystemConfigBuilder.getInstance().getProxyPort(opts), 8080); assertEquals("sftp.userInfo", SftpFileSystemConfigBuilder.getInstance().getUserInfo(opts).getClass(), TrustEveryoneUserInfo.class); final File identities[] = SftpFileSystemConfigBuilder.getInstance().getIdentities(opts); assertNotNull("sftp.identities", identities); assertEquals("sftp.identities size", identities.length, identityPaths.length); for (int iterIdentities = 0; iterIdentities < identities.length; iterIdentities++) { assertEquals("sftp.identities #" + iterIdentities, identities[iterIdentities].getAbsolutePath(), new File(identityPaths[iterIdentities]).getAbsolutePath()); } }
final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); builder.setStrictHostKeyChecking(fileSystemOptions, "no"); builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo());
final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); builder.setStrictHostKeyChecking(fileSystemOptions, "no"); builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo());