This is an automated email from the ASF dual-hosted git repository. lgoldstein pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
The following commit(s) were added to refs/heads/master by this push: new 60bdb04 [SSHD-975] Use target interface's class loader for proxies 60bdb04 is described below commit 60bdb04642cbcb82501841b9f25601c5532d537b Author: Robert Varga <robert.va...@pantheon.tech> AuthorDate: Wed Apr 8 17:17:45 2020 +0300 [SSHD-975] Use target interface's class loader for proxies --- .../main/java/org/apache/sshd/common/channel/AbstractChannel.java | 3 +-- .../org/apache/sshd/common/forward/DefaultForwarderFactory.java | 2 +- .../org/apache/sshd/common/forward/DefaultForwardingFilter.java | 2 +- .../org/apache/sshd/common/helpers/AbstractFactoryManager.java | 7 +++---- .../sshd/common/session/AbstractConnectionServiceFactory.java | 2 +- .../sshd/common/session/helpers/AbstractConnectionService.java | 3 +-- .../org/apache/sshd/common/session/helpers/AbstractSession.java | 7 +++---- .../main/java/org/apache/sshd/client/scp/SimpleScpClientImpl.java | 2 +- .../main/java/org/apache/sshd/server/scp/ScpCommandFactory.java | 6 ++---- .../sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java | 2 +- .../server/subsystem/sftp/AbstractSftpEventListenerManager.java | 2 +- .../sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java | 2 +- 12 files changed, 17 insertions(+), 23 deletions(-) diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java index d8ebe09..4a393b0 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java @@ -130,8 +130,7 @@ public abstract class AbstractChannel gracefulFuture = new DefaultCloseFuture(discriminator, futureLock); localWindow = new Window(this, null, client, true); remoteWindow = new Window(this, null, client, false); - channelListenerProxy = EventListenerUtils.proxyWrapper( - ChannelListener.class, getClass().getClassLoader(), channelListeners); + channelListenerProxy = EventListenerUtils.proxyWrapper(ChannelListener.class, channelListeners); executor = executorService; addRequestHandlers(handlers); } diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwarderFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwarderFactory.java index ace0562..6c6e042 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwarderFactory.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwarderFactory.java @@ -51,7 +51,7 @@ public class DefaultForwarderFactory implements ForwardingFilterFactory, PortFor private final PortForwardingEventListener listenerProxy; public DefaultForwarderFactory() { - listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, getClass().getClassLoader(), listeners); + listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, listeners); } @Override diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java index 7673920..5be03e1 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java @@ -117,7 +117,7 @@ public class DefaultForwardingFilter public DefaultForwardingFilter(ConnectionService service) { this.service = Objects.requireNonNull(service, "No connection service"); this.sessionInstance = Objects.requireNonNull(service.getSession(), "No session"); - this.listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, getClass().getClassLoader(), listeners); + this.listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, listeners); } @Override diff --git a/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java index 65306eb..32e745b 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java @@ -100,13 +100,12 @@ public abstract class AbstractFactoryManager extends AbstractKexFactoryManager i private IoServiceEventListener eventListener; protected AbstractFactoryManager() { - ClassLoader loader = getClass().getClassLoader(); sessionListenerProxy = - EventListenerUtils.proxyWrapper(SessionListener.class, loader, sessionListeners); + EventListenerUtils.proxyWrapper(SessionListener.class, sessionListeners); channelListenerProxy = - EventListenerUtils.proxyWrapper(ChannelListener.class, loader, channelListeners); + EventListenerUtils.proxyWrapper(ChannelListener.class, channelListeners); tunnelListenerProxy = - EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, loader, tunnelListeners); + EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, tunnelListeners); } @Override diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java index 1d80778..ae9e2aa 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java @@ -36,7 +36,7 @@ public abstract class AbstractConnectionServiceFactory extends AbstractLoggingBe private final PortForwardingEventListener listenerProxy; protected AbstractConnectionServiceFactory() { - listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, getClass().getClassLoader(), listeners); + listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, listeners); } @Override diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java index 5bcae35..6f8233e 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java @@ -120,8 +120,7 @@ public abstract class AbstractConnectionService protected AbstractConnectionService(AbstractSession session) { sessionInstance = Objects.requireNonNull(session, "No session"); - listenerProxy = EventListenerUtils.proxyWrapper( - PortForwardingEventListener.class, getClass().getClassLoader(), listeners); + listenerProxy = EventListenerUtils.proxyWrapper(PortForwardingEventListener.class, listeners); } @Override diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java index d654844..5c95ab3 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java @@ -238,13 +238,12 @@ public abstract class AbstractSession extends SessionHelper { refreshConfiguration(); - ClassLoader loader = getClass().getClassLoader(); sessionListenerProxy = EventListenerUtils.proxyWrapper( - SessionListener.class, loader, sessionListeners); + SessionListener.class, sessionListeners); channelListenerProxy = EventListenerUtils.proxyWrapper( - ChannelListener.class, loader, channelListeners); + ChannelListener.class, channelListeners); tunnelListenerProxy = EventListenerUtils.proxyWrapper( - PortForwardingEventListener.class, loader, tunnelListeners); + PortForwardingEventListener.class, tunnelListeners); try { signalSessionEstablished(ioSession); diff --git a/sshd-scp/src/main/java/org/apache/sshd/client/scp/SimpleScpClientImpl.java b/sshd-scp/src/main/java/org/apache/sshd/client/scp/SimpleScpClientImpl.java index c863c6c..82040b5 100644 --- a/sshd-scp/src/main/java/org/apache/sshd/client/scp/SimpleScpClientImpl.java +++ b/sshd-scp/src/main/java/org/apache/sshd/client/scp/SimpleScpClientImpl.java @@ -120,7 +120,7 @@ public class SimpleScpClientImpl extends AbstractLoggingBean implements SimpleSc } protected CloseableScpClient createScpClient(ClientSession session, ScpClient client) throws IOException { - ClassLoader loader = getClass().getClassLoader(); + ClassLoader loader = CloseableScpClient.class.getClassLoader(); Class<?>[] interfaces = {CloseableScpClient.class}; return (CloseableScpClient) Proxy.newProxyInstance(loader, interfaces, (proxy, method, args) -> { String name = method.getName(); diff --git a/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommandFactory.java b/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommandFactory.java index 6a18102..37a46c2 100644 --- a/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommandFactory.java +++ b/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommandFactory.java @@ -110,8 +110,7 @@ public class ScpCommandFactory public ScpCommandFactory() { super(SCP_FACTORY_NAME); - listenerProxy = EventListenerUtils.proxyWrapper( - ScpTransferEventListener.class, getClass().getClassLoader(), listeners); + listenerProxy = EventListenerUtils.proxyWrapper(ScpTransferEventListener.class, listeners); } @Override @@ -222,8 +221,7 @@ public class ScpCommandFactory ScpCommandFactory other = getClass().cast(super.clone()); // clone the listeners set as well other.listeners = new CopyOnWriteArraySet<>(this.listeners); - other.listenerProxy = EventListenerUtils.proxyWrapper( - ScpTransferEventListener.class, getClass().getClassLoader(), other.listeners); + other.listenerProxy = EventListenerUtils.proxyWrapper(ScpTransferEventListener.class, other.listeners); return other; } catch (CloneNotSupportedException e) { throw new RuntimeException(e); // un-expected... diff --git a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java index 30b4a8b..468610a 100644 --- a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java +++ b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java @@ -143,7 +143,7 @@ public class SimpleSftpClientImpl extends AbstractLoggingBean implements SimpleS } protected SftpClient createSftpClient(ClientSession session, SftpClient client) throws IOException { - ClassLoader loader = getClass().getClassLoader(); + ClassLoader loader = SftpClient.class.getClassLoader(); Class<?>[] interfaces = {SftpClient.class}; return (SftpClient) Proxy.newProxyInstance(loader, interfaces, (proxy, method, args) -> { Throwable err = null; diff --git a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpEventListenerManager.java b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpEventListenerManager.java index 11508b3..92d3ded 100644 --- a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpEventListenerManager.java +++ b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpEventListenerManager.java @@ -32,7 +32,7 @@ public abstract class AbstractSftpEventListenerManager implements SftpEventListe private final SftpEventListener sftpEventListenerProxy; protected AbstractSftpEventListenerManager() { - sftpEventListenerProxy = EventListenerUtils.proxyWrapper(SftpEventListener.class, getClass().getClassLoader(), sftpEventListeners); + sftpEventListenerProxy = EventListenerUtils.proxyWrapper(SftpEventListener.class, sftpEventListeners); } public Collection<SftpEventListener> getRegisteredListeners() { diff --git a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java index b171d1b..1380251 100644 --- a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java +++ b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java @@ -211,7 +211,7 @@ public abstract class AbstractSftpSubsystemHelper fileSystemAccessor = Objects.requireNonNull(accessor, "No file system accessor"); sftpEventListenerProxy = - EventListenerUtils.proxyWrapper(SftpEventListener.class, getClass().getClassLoader(), sftpEventListeners); + EventListenerUtils.proxyWrapper(SftpEventListener.class, sftpEventListeners); errorStatusDataHandler = Objects.requireNonNull(handler, "No error status data handler"); }