From 79a1ccc0118bc5d56f3ec7949cc834e87c9125a5 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Thu, 30 Aug 2018 13:18:19 +0200 Subject: [PATCH] Enable proxy authentication for SOCKS4 and HTTP --- src/main/java/ctbrec/HttpClient.java | 10 +++++++ .../java/ctbrec/ui/ProxySettingsPane.java | 26 +++++++------------ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/ctbrec/HttpClient.java b/src/main/java/ctbrec/HttpClient.java index 8225636d..ec805bfb 100644 --- a/src/main/java/ctbrec/HttpClient.java +++ b/src/main/java/ctbrec/HttpClient.java @@ -48,11 +48,19 @@ public class HttpClient { System.setProperty("http.proxyPort", Config.getInstance().getSettings().proxyPort); System.setProperty("https.proxyHost", Config.getInstance().getSettings().proxyHost); System.setProperty("https.proxyPort", Config.getInstance().getSettings().proxyPort); + if(Config.getInstance().getSettings().proxyUser != null && !Config.getInstance().getSettings().proxyUser.isEmpty()) { + System.setProperty("http.proxyUser", Config.getInstance().getSettings().proxyUser); + System.setProperty("http.proxyPassword", Config.getInstance().getSettings().proxyPassword); + } break; case SOCKS4: System.setProperty("socksProxyVersion", "4"); System.setProperty("socksProxyHost", Config.getInstance().getSettings().proxyHost); System.setProperty("socksProxyPort", Config.getInstance().getSettings().proxyPort); + if(Config.getInstance().getSettings().proxyUser != null && !Config.getInstance().getSettings().proxyUser.isEmpty()) { + System.setProperty("java.net.socks.username", Config.getInstance().getSettings().proxyUser); + System.setProperty("java.net.socks.password", Config.getInstance().getSettings().proxyPassword); + } break; case SOCKS5: System.setProperty("socksProxyVersion", "5"); @@ -74,6 +82,8 @@ public class HttpClient { System.clearProperty("socksProxyPort"); System.clearProperty("java.net.socks.username"); System.clearProperty("java.net.socks.password"); + System.clearProperty("http.proxyUser"); + System.clearProperty("http.proxyPassword"); break; } } diff --git a/src/main/java/ctbrec/ui/ProxySettingsPane.java b/src/main/java/ctbrec/ui/ProxySettingsPane.java index 520d0527..02e0c812 100644 --- a/src/main/java/ctbrec/ui/ProxySettingsPane.java +++ b/src/main/java/ctbrec/ui/ProxySettingsPane.java @@ -1,4 +1,8 @@ package ctbrec.ui; +import static ctbrec.Settings.ProxyType.DIRECT; +import static ctbrec.Settings.ProxyType.HTTP; +import static ctbrec.Settings.ProxyType.SOCKS4; +import static ctbrec.Settings.ProxyType.SOCKS5; import java.util.ArrayList; import java.util.List; @@ -38,10 +42,10 @@ public class ProxySettingsPane extends TitledPane implements EventHandler proxyTypes = new ArrayList<>(); - proxyTypes.add(ProxyType.DIRECT); - proxyTypes.add(ProxyType.HTTP); - proxyTypes.add(ProxyType.SOCKS4); - proxyTypes.add(ProxyType.SOCKS5); + proxyTypes.add(DIRECT); + proxyTypes.add(HTTP); + proxyTypes.add(SOCKS4); + proxyTypes.add(SOCKS5); proxyType = new ComboBox<>(new ObservableListWrapper<>(proxyTypes)); proxyType.setOnAction(this); layout.add(proxyType, 1, 0); @@ -87,26 +91,16 @@ public class ProxySettingsPane extends TitledPane implements EventHandler