Przeglądaj źródła

Apache MINA sshd client: don't leak HostConfigEntry

ProxyDataFactory had a parameter of type HostConfigEntry, but actually
it wasn't used anywhere. Remove it -- it was the last leaked type from
Apache MINA sshd.

Also use the logger provided by upstream SshClient instead of creating
a new Logger.

Bug: 520927
Change-Id: Iaa78bbb998a5e574fa091664b75c48a3b9cfb897
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
tags/v5.2.0.201811281532-m3
Thomas Wolf 5 lat temu
rodzic
commit
c567b6ecde

+ 5
- 8
org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/JGitSshClient.java Wyświetl plik

@@ -81,8 +81,6 @@ import org.eclipse.jgit.transport.SshConstants;
import org.eclipse.jgit.transport.sshd.KeyCache;
import org.eclipse.jgit.transport.sshd.ProxyData;
import org.eclipse.jgit.transport.sshd.ProxyDataFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Customized {@link SshClient} for JGit. It creates specialized
@@ -90,7 +88,7 @@ import org.slf4j.LoggerFactory;
* were created for, and it loads all KeyPair identities lazily.
*/
public class JGitSshClient extends SshClient {
private static Logger LOG = LoggerFactory.getLogger(JGitSshClient.class);
/**
* We need access to this during the constructor of the ClientSession,
* before setConnectAddress() can have been called. So we have to remember
@@ -146,7 +144,7 @@ public class JGitSshClient extends SshClient {
setAttribute(HOST_CONFIG_ENTRY, hostConfig);
setAttribute(ORIGINAL_REMOTE_ADDRESS, address);
// Proxy support
ProxyData proxy = getProxyData(hostConfig, address);
ProxyData proxy = getProxyData(address);
if (proxy != null) {
address = configureProxy(proxy, address);
proxy.clearPassword();
@@ -161,10 +159,9 @@ public class JGitSshClient extends SshClient {
}
}

private ProxyData getProxyData(HostConfigEntry hostConfig,
InetSocketAddress remoteAddress) {
private ProxyData getProxyData(InetSocketAddress remoteAddress) {
ProxyDataFactory factory = getProxyDatabase();
return factory == null ? null : factory.get(hostConfig, remoteAddress);
return factory == null ? null : factory.get(remoteAddress);
}

private InetSocketAddress configureProxy(ProxyData proxyData,
@@ -187,7 +184,7 @@ public class JGitSshClient extends SshClient {
proxyData.getUser(), proxyData.getPassword()));
return address;
default:
LOG.warn(format(SshdText.get().unknownProxyProtocol,
log.warn(format(SshdText.get().unknownProxyProtocol,
proxy.type().name()));
return remoteAddress;
}

+ 1
- 4
org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/DefaultProxyDataFactory.java Wyświetl plik

@@ -50,8 +50,6 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;

import org.apache.sshd.client.config.hosts.HostConfigEntry;

/**
* A default implementation of a {@link ProxyDataFactory} based on the standard
* {@link java.net.ProxySelector}.
@@ -61,8 +59,7 @@ import org.apache.sshd.client.config.hosts.HostConfigEntry;
public class DefaultProxyDataFactory implements ProxyDataFactory {

@Override
public ProxyData get(HostConfigEntry hostConfig,
InetSocketAddress remoteAddress) {
public ProxyData get(InetSocketAddress remoteAddress) {
try {
List<Proxy> proxies = ProxySelector.getDefault()
.select(new URI(Proxy.Type.SOCKS.name(),

+ 1
- 5
org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/transport/sshd/ProxyDataFactory.java Wyświetl plik

@@ -44,8 +44,6 @@ package org.eclipse.jgit.transport.sshd;

import java.net.InetSocketAddress;

import org.apache.sshd.client.config.hosts.HostConfigEntry;

/**
* Interface for obtaining {@link ProxyData} to connect through some proxy.
*
@@ -59,12 +57,10 @@ public interface ProxyDataFactory {
* {@link ProxyData} contains a password, the {@link SshdSession} will clear
* it once it is no longer needed.
*
* @param hostConfig
* from the ssh config that we're going to connect for
* @param remoteAddress
* to connect to
* @return the {@link ProxyData} or {@code null} if a direct connection is
* to be made
*/
ProxyData get(HostConfigEntry hostConfig, InetSocketAddress remoteAddress);
ProxyData get(InetSocketAddress remoteAddress);
}

Ładowanie…
Anuluj
Zapisz