У меня есть клиент-серверное приложение, которое удаленно подключается к серверу через SSLSocket Java.
Я пытаюсь реализовать дополнительный режим, который разрешает соединения через аутентифицированный прокси SOCKS v5.
Я пытался использовать соответствующее руководство , но в нем ничего не говорится о SSL.
Я попытался установить общесистемные свойства ("socksProxyHost" и "socksProxyPort"), но, похоже, ничего не происходит.
Мой следующий подход состоял в том, чтобы использовать фабричный метод в SSLSocketFactory:
String proxyHost = Config.prefs.get("PROXY_NAME", "localhost");
int proxyPort = Config.prefs.getInt("PROXY_PORT", 1080);
InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Socket underlying = new SSLSocket(new Proxy(Proxy.Type.SOCKS, proxyAddr));
underlying.connect(new InetSocketAddress(getHost(), getPort()));
socket = (SSLSocket) factory.createSocket(
underlying,
getHost(),
getPort(),
true);
Но проблема этого подхода заключается в том, что метод createSocket требует, чтобы базовый сокет уже был подключен, и мой сервер не будет принимать соединения без SSL.
Как лучше всего подключиться к моему удаленному серверу с помощью SOCKS? Кроме того, я почти не знаю, как ввести имя пользователя / пароль для аутентифицированных SOCKS в этой системе.
Спасибо!