我有一个Java应用程序JRTMT,我需要在Windows上通过带有身份验证(用户名和密码)的SOCKS5代理运行该应用程序。应用程序的代码无法更改。唯一的选择是使用一些参数/环境变量等。
我做了一些研究,发现了以下参数:
java -DsocksProxyHost = 1.1.1.1 -DsocksProxyPort = 1080 -Djava.net.socks.username = JohnDoe -Djava.net.socks.password = XXXXXXX -jar JRtmt.jar
这允许与SOCKS 5 Proxy建立通信。我可以看到Wireshark中的SOCKS数据包通过端口1080往返于1.1.1.1之间。但是,身份验证失败。在SOCKS协议中(在数据包捕获中),我可以看到应用程序正在尝试使用以下方式对代理进行身份验证:
username:winuser
(Windows用户名),密码为空
代替
username=JohnDoe
和password=XXXXXX
是否存在任何选项/参数来强制Java中的身份验证方法使用用户名/密码?