diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java index 94490c9..73515b9 100644 --- a/app/src/main/java/com/jens/automation2/Action.java +++ b/app/src/main/java/com/jens/automation2/Action.java @@ -769,10 +769,10 @@ public class Action Miscellaneous.logEvent("i", "HTTP Request", "Attempt " + String.valueOf(attempts++) + " of " + String.valueOf(Settings.httpAttempts), 3); // Either thorough checking or no encryption - if(!Settings.httpAcceptAllCertificates || !urlString.toLowerCase(Locale.getDefault()).contains("https")) +// if(!Settings.httpAcceptAllCertificates || !urlString.toLowerCase(Locale.getDefault()).contains("https")) response = Miscellaneous.downloadURL(urlString, urlUsername, urlPassword, method, httpParams); - else - response = Miscellaneous.downloadUrlWithoutCertificateChecking(urlString, urlUsername, urlPassword, method, httpParams); +// else +// response = Miscellaneous.downloadUrlWithoutCertificateChecking(urlString, urlUsername, urlPassword, method, httpParams); try { diff --git a/app/src/main/java/com/jens/automation2/Miscellaneous.java b/app/src/main/java/com/jens/automation2/Miscellaneous.java index 159d067..6e22f31 100644 --- a/app/src/main/java/com/jens/automation2/Miscellaneous.java +++ b/app/src/main/java/com/jens/automation2/Miscellaneous.java @@ -92,6 +92,7 @@ import java.security.KeyManagementException; import java.security.KeyStore; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.text.DateFormat; @@ -135,6 +136,27 @@ public class Miscellaneous extends Service public static final String lineSeparator = System.getProperty("line.separator"); + public static class TrustAllCertificates implements X509TrustManager + { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) + { + // Do nothing (trust all clients) + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) + { + // Do nothing (trust all servers) + } + + @Override + public X509Certificate[] getAcceptedIssuers() + { + return new X509Certificate[0]; // No accepted issuers + } + } + public static String downloadURL(String url, String username, String password, String method, Map httpParams) { HttpClient httpclient = new DefaultHttpClient(); @@ -149,12 +171,24 @@ public class Miscellaneous extends Service HttpURLConnection connection; if(url.toLowerCase().contains("https")) - { - connection = (HttpsURLConnection) urlObject.openConnection(); - } + { + connection = (HttpsURLConnection) urlObject.openConnection(); + if(Settings.httpAcceptAllCertificates) + { + SSLContext sslContext = SSLContext.getInstance("TLS"); // Use "TLS" (not "SSL" which is outdated) + sslContext.init( + null, // No KeyManager (client authentication not needed) + new TrustManager[]{new TrustAllCertificates()}, // Use our trust manager + new SecureRandom() // Secure random number generator + ); + ((HttpsURLConnection)connection).setSSLSocketFactory(sslContext.getSocketFactory()); + ((HttpsURLConnection)connection).setHostnameVerifier((hostname, session) -> true); // Trust all hostnames + + } + } else connection = (HttpURLConnection) urlObject.openConnection(); - + // Add http simple authentication if specified if(username != null && password != null) { diff --git a/fastlane/metadata/android/en-US/changelogs/147.txt b/fastlane/metadata/android/en-US/changelogs/147.txt index 68e038d..c7b0d3c 100644 --- a/fastlane/metadata/android/en-US/changelogs/147.txt +++ b/fastlane/metadata/android/en-US/changelogs/147.txt @@ -1 +1,2 @@ -* Added: Added further options to the trigger url action. \ No newline at end of file +* Added: Added further options to the trigger url action. +* Added: Gradle and libraries updated. \ No newline at end of file