Révision 2894
tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenLocalizedWebPage.java (revision 2894) | ||
---|---|---|
28 | 28 |
package org.txm.rcp.commands; |
29 | 29 |
|
30 | 30 |
import java.net.URL; |
31 |
import java.security.GeneralSecurityException; |
|
31 | 32 |
import java.util.Locale; |
32 | 33 |
|
33 | 34 |
import javax.net.ssl.HttpsURLConnection; |
35 |
import javax.net.ssl.SSLContext; |
|
36 |
import javax.net.ssl.TrustManager; |
|
37 |
import javax.net.ssl.X509TrustManager; |
|
38 |
import javax.security.cert.X509Certificate; |
|
34 | 39 |
|
35 | 40 |
import org.eclipse.core.commands.AbstractHandler; |
36 | 41 |
import org.eclipse.core.commands.ExecutionEvent; |
... | ... | |
89 | 94 |
return null; |
90 | 95 |
} |
91 | 96 |
|
97 |
/** |
|
98 |
* try connecting to an URL if it fails, the alternative url is returned |
|
99 |
* |
|
100 |
* @param urltoTest |
|
101 |
* @param alternativeUrl |
|
102 |
* @return |
|
103 |
*/ |
|
92 | 104 |
static public String getValidURL(String urltoTest, String alternativeUrl) { |
93 | 105 |
try { |
94 | 106 |
URL url = new URL(urltoTest); |
95 | 107 |
if (url.getProtocol().equals("https")) { |
108 |
|
|
109 |
//ts.setCertificateEntry(UUID.randomUUID(), cert); |
|
96 | 110 |
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); |
111 |
if (SSLContext.getDefault() != null) { |
|
112 |
|
|
113 |
// Create a trust manager that does not validate certificate chains |
|
114 |
TrustManager[] trustAllCerts = new TrustManager[] { |
|
115 |
new X509TrustManager() { |
|
116 |
public java.security.cert.X509Certificate[] getAcceptedIssuers() { |
|
117 |
return new java.security.cert.X509Certificate[0]; |
|
118 |
} |
|
119 |
public void checkClientTrusted( |
|
120 |
java.security.cert.X509Certificate[] certs, String authType) { |
|
121 |
} |
|
122 |
public void checkServerTrusted( |
|
123 |
java.security.cert.X509Certificate[] certs, String authType) { |
|
124 |
} |
|
125 |
} |
|
126 |
}; |
|
127 |
|
|
128 |
// Install the all-trusting trust manager for this connection ONLY |
|
129 |
try { |
|
130 |
SSLContext sc = SSLContext.getInstance("SSL"); |
|
131 |
sc.init(null, trustAllCerts, new java.security.SecureRandom()); |
|
132 |
connection.setSSLSocketFactory(sc.getSocketFactory()); |
|
133 |
} catch (GeneralSecurityException e) { |
|
134 |
Log.printStackTrace(e); |
|
135 |
} |
|
136 |
} |
|
137 |
|
|
97 | 138 |
if (connection.getResponseCode() != HttpsURLConnection.HTTP_OK) { |
98 | 139 |
Log.fine(NLS.bind("HTTP Error while testing the \"{0}\" web page: {1}", urltoTest, connection.getResponseCode())); |
99 | 140 |
connection.disconnect(); |
... | ... | |
124 | 165 |
if (idx > 0) version = version.substring(0, idx); // remove the "qualifier" part |
125 | 166 |
|
126 | 167 |
String locale = Locale.getDefault().getLanguage(); |
127 |
|
|
168 |
|
|
128 | 169 |
if (TEXTOMETRIE.equals(key)) { |
129 | 170 |
if ("fr".equals(locale)) { //$NON-NLS-1$ |
130 | 171 |
return OpenBrowser.openfile(URL_TEXTOMETRIE); |
... | ... | |
195 | 236 |
return OpenBrowser.openfile(key); //$NON-NLS-1$ |
196 | 237 |
} |
197 | 238 |
} |
198 |
|
|
239 |
|
|
199 | 240 |
public static void main(String args[]) { |
200 |
String s = getValidURL("https://stackoverflow.com/questionz", "https://stackoverflow.com/questions");
|
|
241 |
String s = getValidURL("https://txm.gitpages.huma-num.fr/textometrie/files/software/TXM/0.8.1beta/", "https://txm.gitpages.huma-num.fr/textometrie/files/software/TXM/0.8.1beta");
|
|
201 | 242 |
System.out.println(s); |
202 | 243 |
} |
203 | 244 |
} |
Formats disponibles : Unified diff