public class DefaultForwardingFilter extends AbstractInnerCloseable implements ForwardingFilter, SessionHolder<Session>, PortForwardingEventListenerManager
| Modifier and Type | Class and Description |
|---|---|
(package private) class |
DefaultForwardingFilter.StaticIoHandler |
AbstractCloseable.State| Modifier and Type | Field and Description |
|---|---|
private IoAcceptor |
acceptor |
private java.util.Map<java.lang.Integer,java.net.InetSocketAddress> |
boundDynamic |
private java.util.Map<java.lang.Integer,java.net.InetSocketAddress> |
boundLocals |
static long |
DEFAULT_FORWARD_REQUEST_TIMEOUT
Default value for "tcpip-forward-request-timeout" if none specified
|
private java.util.Map<java.lang.Integer,SocksProxy> |
dynamicLocal |
private java.lang.Object |
dynamicLock |
static java.lang.String |
FORWARD_REQUEST_TIMEOUT
Used to configure the timeout (milliseconds) for receiving a response for the forwarding request
|
private PortForwardingEventListener |
listenerProxy |
private java.util.Collection<PortForwardingEventListener> |
listeners |
private java.util.Set<LocalForwardingEntry> |
localForwards |
private java.lang.Object |
localLock |
private java.util.Map<java.lang.Integer,SshdSocketAddress> |
localToRemote |
private java.util.Collection<PortForwardingEventListenerManager> |
managersHolder |
private java.util.Map<java.lang.Integer,SshdSocketAddress> |
remoteToLocal |
private ConnectionService |
service |
private Session |
sessionInstance |
private IoHandlerFactory |
socksProxyIoHandlerFactory |
static java.util.Set<ClientChannelEvent> |
STATIC_IO_MSG_RECEIVED_EVENTS |
private IoHandlerFactory |
staticIoHandlerFactory |
closeFuture, futureLock, statelogCLOSE_WAIT_TIMEOUT, DEFAULT_CLOSE_WAIT_TIMEOUT| Constructor and Description |
|---|
DefaultForwardingFilter(ConnectionService service) |
doCloseGracefully, doCloseImmediatelyaddCloseFutureListener, builder, close, getFutureLock, isClosed, isClosing, removeCloseFutureListenergetSimplifiedLoggerclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitisLocalPortForwardingStartedForPort, isRemotePortForwardingStartedForPortaddCloseFutureListener, close, close, close, getMaxCloseWaitTime, isClosed, isClosing, isOpen, removeCloseFutureListenergetSessionContextpublic static final java.lang.String FORWARD_REQUEST_TIMEOUT
public static final long DEFAULT_FORWARD_REQUEST_TIMEOUT
public static final java.util.Set<ClientChannelEvent> STATIC_IO_MSG_RECEIVED_EVENTS
private final ConnectionService service
private final IoHandlerFactory socksProxyIoHandlerFactory
private final Session sessionInstance
private final java.lang.Object localLock
private final java.util.Map<java.lang.Integer,SshdSocketAddress> localToRemote
private final java.util.Map<java.lang.Integer,java.net.InetSocketAddress> boundLocals
private final java.lang.Object dynamicLock
private final java.util.Map<java.lang.Integer,SshdSocketAddress> remoteToLocal
private final java.util.Map<java.lang.Integer,SocksProxy> dynamicLocal
private final java.util.Map<java.lang.Integer,java.net.InetSocketAddress> boundDynamic
private final java.util.Set<LocalForwardingEntry> localForwards
private final IoHandlerFactory staticIoHandlerFactory
private final java.util.Collection<PortForwardingEventListener> listeners
private final java.util.Collection<PortForwardingEventListenerManager> managersHolder
private final PortForwardingEventListener listenerProxy
private IoAcceptor acceptor
public DefaultForwardingFilter(ConnectionService service)
public PortForwardingEventListener getPortForwardingEventListenerProxy()
getPortForwardingEventListenerProxy in interface PortForwardingEventListenerManagerpublic void addPortForwardingEventListener(PortForwardingEventListener listener)
PortForwardingEventListenerManageraddPortForwardingEventListener in interface PortForwardingEventListenerManagerlistener - The PortForwardingEventListener to add - never nullpublic void removePortForwardingEventListener(PortForwardingEventListener listener)
PortForwardingEventListenerManagerremovePortForwardingEventListener in interface PortForwardingEventListenerManagerlistener - The PortForwardingEventListener to remove - ignored if nullpublic java.util.Collection<PortForwardingEventListenerManager> getRegisteredManagers()
getRegisteredManagers in interface PortForwardingEventListenerManagerHolderpublic boolean addPortForwardingEventListenerManager(PortForwardingEventListenerManager manager)
addPortForwardingEventListenerManager in interface PortForwardingEventListenerManagerHolderpublic boolean removePortForwardingEventListenerManager(PortForwardingEventListenerManager manager)
removePortForwardingEventListenerManager in interface PortForwardingEventListenerManagerHolderpublic Session getSession()
getSession in interface SessionHolder<Session>public final ConnectionService getConnectionService()
protected java.util.Collection<PortForwardingEventListener> getDefaultListeners()
public SshdSocketAddress startLocalPortForwarding(SshdSocketAddress local, SshdSocketAddress remote) throws java.io.IOException
PortForwardingManagerstartLocalPortForwarding in interface PortForwardingManagerlocal - The local addressremote - The remote addressSshdSocketAddressjava.io.IOException - If failed to create the requested bindingpublic void stopLocalPortForwarding(SshdSocketAddress local) throws java.io.IOException
PortForwardingManagerstopLocalPortForwarding in interface PortForwardingManagerlocal - The local addressjava.io.IOException - If failed to cancel the requested bindingprotected void unbindLocalForwarding(SshdSocketAddress local, SshdSocketAddress remote, java.net.InetSocketAddress bound) throws java.io.IOException
java.io.IOExceptionpublic SshdSocketAddress startRemotePortForwarding(SshdSocketAddress remote, SshdSocketAddress local) throws java.io.IOException
PortForwardingManagerStart forwarding tcpip from the given address on the server to the given address on the client.
The remote host name is the address to bind to on the server:startRemotePortForwarding in interface PortForwardingManagerremote - The remote addresslocal - The local addressSshdSocketAddressjava.io.IOException - If failed to create the requested bindingpublic void stopRemotePortForwarding(SshdSocketAddress remote) throws java.io.IOException
PortForwardingManagerstopRemotePortForwarding in interface PortForwardingManagerremote - The remote addressjava.io.IOException - If failed to cancel the requested bindingprotected void signalTearingDownExplicitTunnel(SshdSocketAddress boundAddress, boolean localForwarding, SshdSocketAddress remote) throws java.io.IOException
java.io.IOExceptionprotected void signalTearingDownExplicitTunnel(PortForwardingEventListener listener, SshdSocketAddress boundAddress, boolean localForwarding, SshdSocketAddress remoteAddress) throws java.io.IOException
java.io.IOExceptionprotected void signalTornDownExplicitTunnel(SshdSocketAddress boundAddress, boolean localForwarding, SshdSocketAddress remoteAddress, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionprotected void signalTornDownExplicitTunnel(PortForwardingEventListener listener, SshdSocketAddress boundAddress, boolean localForwarding, SshdSocketAddress remoteAddress, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionpublic SshdSocketAddress startDynamicPortForwarding(SshdSocketAddress local) throws java.io.IOException
PortForwardingManagerstartDynamicPortForwarding in interface PortForwardingManagerlocal - The local addressSshdSocketAddressjava.io.IOException - If failed to create the requested bindingprotected void signalEstablishedDynamicTunnel(SshdSocketAddress local, SshdSocketAddress boundAddress, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionprotected void signalEstablishedDynamicTunnel(PortForwardingEventListener listener, SshdSocketAddress local, SshdSocketAddress boundAddress, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionprotected void signalEstablishingDynamicTunnel(SshdSocketAddress local) throws java.io.IOException
java.io.IOExceptionprotected void signalEstablishingDynamicTunnel(PortForwardingEventListener listener, SshdSocketAddress local) throws java.io.IOException
java.io.IOExceptionpublic void stopDynamicPortForwarding(SshdSocketAddress local) throws java.io.IOException
PortForwardingManagerstopDynamicPortForwarding in interface PortForwardingManagerlocal - The local addressjava.io.IOException - If failed to cancel the requested bindingprotected void unbindDynamicForwarding(SshdSocketAddress local, SocksProxy proxy, java.net.InetSocketAddress bound) throws java.io.IOException
java.io.IOExceptionprotected void signalTearingDownDynamicTunnel(SshdSocketAddress address) throws java.io.IOException
java.io.IOExceptionprotected void signalTearingDownDynamicTunnel(PortForwardingEventListener listener, SshdSocketAddress address) throws java.io.IOException
java.io.IOExceptionprotected void signalTornDownDynamicTunnel(SshdSocketAddress address, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionprotected void signalTornDownDynamicTunnel(PortForwardingEventListener listener, SshdSocketAddress address, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionpublic SshdSocketAddress getForwardedPort(int remotePort)
getForwardedPort in interface ForwardingFilterremotePort - The remote portSshdSocketAddress that the remote port is forwarded topublic SshdSocketAddress localPortForwardingRequested(SshdSocketAddress local) throws java.io.IOException
ForwardingFilterlocalPortForwardingRequested in interface ForwardingFilterlocal - The request addressSshdSocketAddress - null if not allowed to forwardjava.io.IOException - If failed to handle requestpublic void localPortForwardingCancelled(SshdSocketAddress local) throws java.io.IOException
ForwardingFilterlocalPortForwardingCancelled in interface ForwardingFilterlocal - The local SshdSocketAddressjava.io.IOException - If failed to handle requestprotected void signalEstablishingExplicitTunnel(SshdSocketAddress local, SshdSocketAddress remote, boolean localForwarding) throws java.io.IOException
java.io.IOExceptionprotected void signalEstablishingExplicitTunnel(PortForwardingEventListener listener, SshdSocketAddress local, SshdSocketAddress remote, boolean localForwarding) throws java.io.IOException
java.io.IOExceptionprotected void signalEstablishedExplicitTunnel(SshdSocketAddress local, SshdSocketAddress remote, boolean localForwarding, SshdSocketAddress boundAddress, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionprotected void signalEstablishedExplicitTunnel(PortForwardingEventListener listener, SshdSocketAddress local, SshdSocketAddress remote, boolean localForwarding, SshdSocketAddress boundAddress, java.lang.Throwable reason) throws java.io.IOException
java.io.IOExceptionprotected void invokePortEventListenerSignaller(Invoker<PortForwardingEventListener,java.lang.Void> invoker) throws java.lang.Throwable
java.lang.Throwableprotected void invokePortEventListenerSignallerListeners(java.util.Collection<? extends PortForwardingEventListener> listeners, Invoker<PortForwardingEventListener,java.lang.Void> invoker) throws java.lang.Throwable
java.lang.Throwableprotected void invokePortEventListenerSignallerHolders(java.util.Collection<? extends PortForwardingEventListenerManager> holders, Invoker<PortForwardingEventListener,java.lang.Void> invoker) throws java.lang.Throwable
java.lang.Throwableprotected Closeable getInnerCloseable()
getInnerCloseable in class AbstractInnerCloseableprotected void preClose()
AbstractCloseablepreClose in class AbstractCloseableprivate java.net.InetSocketAddress doBind(SshdSocketAddress address, Factory<? extends IoHandler> handlerFactory) throws java.io.IOException
public java.lang.String toString()
toString in class java.lang.Objectpublic SshdSocketAddress getBoundLocalPortForward(int port)
getBoundLocalPortForward in interface PortForwardingInformationProviderport - The port numberSshdSocketAddress for the port - null if none boundisLocalPortForwardingStartedForPort,
PortForwardingInformationProvider.getStartedLocalPortForwards()public java.util.List<java.util.Map.Entry<java.lang.Integer,SshdSocketAddress>> getLocalForwardsBindings()
getLocalForwardsBindings in interface PortForwardingInformationProviderSshdSocketAddresspublic java.util.NavigableSet<java.lang.Integer> getStartedLocalPortForwards()
getStartedLocalPortForwards in interface PortForwardingInformationProviderNavigableSet snapshot of the currently started local port forwardspublic java.util.List<java.util.Map.Entry<java.lang.Integer,SshdSocketAddress>> getRemoteForwardsBindings()
getRemoteForwardsBindings in interface PortForwardingInformationProviderSshdSocketAddresspublic SshdSocketAddress getBoundRemotePortForward(int port)
getBoundRemotePortForward in interface PortForwardingInformationProviderport - The port numberSshdSocketAddress for the port - null if none boundisRemotePortForwardingStartedForPort,
PortForwardingInformationProvider.getStartedRemotePortForwards()public java.util.NavigableSet<java.lang.Integer> getStartedRemotePortForwards()
getStartedRemotePortForwards in interface PortForwardingInformationProviderNavigableSet snapshot of the currently started remote port forwards