1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.util.Properties;
import java.net.URL;
import java.net.URLConnection;
import java.io.InputStreamReader;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.net.ssl.HttpsURLConnection;
import java.security.cert.*;
import java.net.Authenticator;
public class TestProxy{
public TestProxy(String proxy, String proxyport, String address)
{
OutputStreamWriter writer = null;
BufferedReader reader = null;
try {
System.out.println("constructor TestProxy :: proxy="+proxy+" proxyport="+proxyport+" address="+address);
//System.setProperty("http.proxySet","true");
System.setProperty("https.proxyHost",proxy);
System.setProperty("https.proxyPort",proxyport);
SimpleAuthenticator sa = new SimpleAuthenticator("le_login" , "le_mot_de_passe");
Authenticator.setDefault(sa);
URL url = new URL(address);
if (url.getProtocol().equalsIgnoreCase("HTTPS"))
{
System.out.println("Protocol HTTPS");
SSLContext sslContext = SSLContext.getInstance("SSLV3");
TrustManager[] trustManagerArray = getAllTrustingTrustManager();
sslContext.init(null, trustManagerArray, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
}
else
{
System.out.println("Protocol HTTP");
URLConnection connection = url.openConnection();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
}
String ligne;
while ((ligne = reader.readLine()) != null)
{
System.out.println("\t"+ligne);
}
System.out.println("\n\nEND!!");
}
catch (Exception e) {
// affichage de la trace en cas d'exception
e.printStackTrace(); }
finally{ try{ writer.close(); }
catch(Exception e){e.printStackTrace();}
try{ reader.close(); }
catch(Exception e){e.printStackTrace();} }
}
public static void main (String[] args){
if (args.length<3)
{
System.out.println("Usage : java TestProxy <proxy url> <proxy port> <url> ");
return;
}
System.out.println("TestProxy main() starting ...");
TestProxy tp = new TestProxy(args[0], args[1],args[2]);
System.out.println("\n\nTestProxy END");
}
public class SimpleAuthenticator extends java.net.Authenticator {
private String username, password;
public SimpleAuthenticator() {
super();
}
public SimpleAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
protected java.net.PasswordAuthentication getPasswordAuthentication() {
return new java.net.PasswordAuthentication(username, password
.toCharArray());
}
}
public static TrustManager[] getAllTrustingTrustManager(){
return new TrustManager[]{
new X509TrustManager(){
public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain){
return true;
}
public boolean isServerTrusted(java.security.cert.X509Certificate[] chain){
return true;
}
public boolean isClientTrusted(java.security.cert.X509Certificate[] chain){
return true;
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {}
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {}
}
};
}
} |
Partager