Class SftpStreamProxy
- java.lang.Object
-
- org.apache.commons.vfs2.provider.sftp.SftpStreamProxy
-
- All Implemented Interfaces:
com.jcraft.jsch.Proxy
public class SftpStreamProxy extends java.lang.Object implements com.jcraft.jsch.Proxy
Stream based proxy for JSch.Use a command on the proxy that will forward the SSH stream to the target host and port.
- Since:
- 2.1
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BASH_TCP_COMMAND
Command format using bash built-in TCP stream.private com.jcraft.jsch.ChannelExec
channel
private java.lang.String
commandFormat
Command pattern to execute on the proxy host.static java.lang.String
NETCAT_COMMAND
Command format using netcat command.private java.lang.String
proxyHost
Hostname used to connect to the proxy host.private FileSystemOptions
proxyOptions
The options for connection.private java.lang.String
proxyPassword
The password to be used for connection.private int
proxyPort
Port used to connect to the proxy host.private java.lang.String
proxyUser
Username used to connect to the proxy host.private com.jcraft.jsch.Session
session
-
Constructor Summary
Constructors Constructor Description SftpStreamProxy(java.lang.String commandFormat, java.lang.String proxyUser, java.lang.String proxyHost, int proxyPort, java.lang.String proxyPassword, FileSystemOptions proxyOptions)
Creates a stream proxy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
connect(com.jcraft.jsch.SocketFactory socketFactory, java.lang.String targetHost, int targetPort, int timeout)
java.io.InputStream
getInputStream()
java.io.OutputStream
getOutputStream()
java.net.Socket
getSocket()
-
-
-
Field Detail
-
BASH_TCP_COMMAND
public static final java.lang.String BASH_TCP_COMMAND
Command format using bash built-in TCP stream.- See Also:
- Constant Field Values
-
NETCAT_COMMAND
public static final java.lang.String NETCAT_COMMAND
Command format using netcat command.- See Also:
- Constant Field Values
-
channel
private com.jcraft.jsch.ChannelExec channel
-
commandFormat
private final java.lang.String commandFormat
Command pattern to execute on the proxy host.When run, the command output should be forwarded to the target host and port, and its input should be forwarded from the target host and port.
The command will be created for each host/port pair by using String.format(String, Object...) with two objects: the target host name (String) and the target port (Integer).
Here are two examples (that can be easily used by using the static members of this class):
nc -q 0 %s %d
to use the netcat command (NETCAT_COMMAND)/bin/bash -c 'exec 3<>/dev/tcp/%s/%d; cat <&3 & cat >&3; kill $!
will use bash built-in TCP stream, which can be useful when there is no netcat available. (BASH_TCP_COMMAND)
-
proxyHost
private final java.lang.String proxyHost
Hostname used to connect to the proxy host.
-
proxyOptions
private final FileSystemOptions proxyOptions
The options for connection.
-
proxyPassword
private final java.lang.String proxyPassword
The password to be used for connection.
-
proxyPort
private final int proxyPort
Port used to connect to the proxy host.
-
proxyUser
private final java.lang.String proxyUser
Username used to connect to the proxy host.
-
session
private com.jcraft.jsch.Session session
-
-
Constructor Detail
-
SftpStreamProxy
public SftpStreamProxy(java.lang.String commandFormat, java.lang.String proxyUser, java.lang.String proxyHost, int proxyPort, java.lang.String proxyPassword, FileSystemOptions proxyOptions)
Creates a stream proxy.- Parameters:
commandFormat
- A format string that will be used to create the command to execute on the proxy host using String.format(String, Object...). Two parameters are given to the format command, the target host name (String) and port (Integer).proxyUser
- The proxy userproxyPassword
- The proxy passwordproxyHost
- The proxy hostproxyPort
- The port to connect to on the proxyproxyOptions
- Options used when connecting to the proxy
-
-
Method Detail
-
close
public void close()
- Specified by:
close
in interfacecom.jcraft.jsch.Proxy
-
connect
public void connect(com.jcraft.jsch.SocketFactory socketFactory, java.lang.String targetHost, int targetPort, int timeout) throws java.lang.Exception
- Specified by:
connect
in interfacecom.jcraft.jsch.Proxy
- Throws:
java.lang.Exception
-
getInputStream
public java.io.InputStream getInputStream()
- Specified by:
getInputStream
in interfacecom.jcraft.jsch.Proxy
-
getOutputStream
public java.io.OutputStream getOutputStream()
- Specified by:
getOutputStream
in interfacecom.jcraft.jsch.Proxy
-
getSocket
public java.net.Socket getSocket()
- Specified by:
getSocket
in interfacecom.jcraft.jsch.Proxy
-
-