La mayoría de las respuestas están ahí, pero para mí no del todo. Esto es lo que funciona para mí con java.net.HttpURLConnection (he probado todos los casos con JDK 7 y JDK 8). Tenga en cuenta que no tiene que usar la clase Authenticator.
Caso 1: Proxy sin autenticación de usuario, recursos de acceso HTTP
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport
Caso 2: Proxy con autenticación de usuario, acceso a recursos HTTP
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport -Dhttps.proxyUser=myuser -Dhttps.proxyPassword=mypass
Caso 3: Proxy sin autenticación de usuario, el acceso HTTPS recursos (SSL)
-Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport
Caso 4: Proxy con el usuario au thentication, recursos de acceso HTTPS (SSL)
-Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport -Dhttps.proxyUser=myuser -Dhttps.proxyPassword=mypass
Caso 5: Proxy sin autenticación de usuario, el acceso HTTP y HTTPS recursos (SSL)
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport -Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport
Caso 6: Proxy con autenticación de usuario, el acceso HTTP y los recursos HTTPS (SSL)
-Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport -Dhttp.proxyUser=myuser -Dhttp.proxyPassword=mypass -Dhttps.proxyHost=myproxy -Dhttps.proxyPort=myport -Dhttps.proxyUser=myuser -Dhttps.proxyPassword=mypass
puede establecer las propiedades en el System.setProperty con ("clave", "valor) también.
Para acceder al recurso HTTPS, puede que tenga que confiar en el recurso descargando el certificado del servidor y guardándolo en un almacén de confianza y luego utilizando ese almacén de confianza. es decir
System.setProperty("javax.net.ssl.trustStore", "c:/temp/cert-factory/my-cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
¿Qué tipo de autenticación acepta/requiere su servidor proxy? Basic, Digest o NTLM? – brianegge