summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Brubaker <cbrubaker@google.com>2016-01-26 20:09:38 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-01-26 20:09:38 +0000
commit8a99e01bd455829323c810a53b8ca004943372ba (patch)
tree588e4e2a7c8d30e95f1e6f6ca85a69aff05ffcfc
parent64701280b28a471f5b2469cb753605d3f7e27085 (diff)
parent848b5edd4adadfbf7c9a97f74173592e3a80c361 (diff)
downloadandroid_external_apache-http-8a99e01bd455829323c810a53b8ca004943372ba.tar.gz
android_external_apache-http-8a99e01bd455829323c810a53b8ca004943372ba.tar.bz2
android_external_apache-http-8a99e01bd455829323c810a53b8ca004943372ba.zip
Merge "Use hostname aware isCleartextTrafficPermitted"
-rw-r--r--src/org/apache/http/impl/client/DefaultRequestDirector.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/org/apache/http/impl/client/DefaultRequestDirector.java b/src/org/apache/http/impl/client/DefaultRequestDirector.java
index 6f9dcd0..50c4a3f 100644
--- a/src/org/apache/http/impl/client/DefaultRequestDirector.java
+++ b/src/org/apache/http/impl/client/DefaultRequestDirector.java
@@ -432,7 +432,9 @@ public class DefaultRequestDirector implements RequestDirector {
this.log.debug("Attempt " + execCount + " to execute request");
}
// BEGIN android-added
- if ((!route.isSecure()) && (!isCleartextTrafficPermitted())) {
+ if ((!route.isSecure())
+ && (!isCleartextTrafficPermitted(
+ route.getTargetHost().getHostName()))) {
throw new IOException(
"Cleartext traffic not permitted: " + route.getTargetHost());
}
@@ -1135,7 +1137,7 @@ public class DefaultRequestDirector implements RequestDirector {
/** Cached android.security.NetworkSecurityPolicy.isCleartextTrafficPermitted method. */
private static Method cleartextTrafficPermittedMethod;
- private static boolean isCleartextTrafficPermitted() {
+ private static boolean isCleartextTrafficPermitted(String hostname) {
// TODO: Remove this method once NetworkSecurityPolicy can be accessed without Reflection.
// This method invokes NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted
// via Reflection API.
@@ -1149,12 +1151,13 @@ public class DefaultRequestDirector implements RequestDirector {
Class<?> cls = Class.forName("android.security.NetworkSecurityPolicy");
Method getInstanceMethod = cls.getMethod("getInstance");
networkSecurityPolicy = getInstanceMethod.invoke(null);
- cleartextTrafficPermittedMethod = cls.getMethod("isCleartextTrafficPermitted");
+ cleartextTrafficPermittedMethod =
+ cls.getMethod("isCleartextTrafficPermitted", String.class);
}
policy = networkSecurityPolicy;
method = cleartextTrafficPermittedMethod;
}
- return (Boolean) method.invoke(policy);
+ return (Boolean) method.invoke(policy, hostname);
} catch (ReflectiveOperationException e) {
// Can't access the Android framework NetworkSecurityPolicy. To be backward compatible,
// assume that cleartext traffic is permitted. Android CTS will take care of ensuring