You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Tony Likhite <to...@likhite.net> on 2014/03/01 04:15:16 UTC

Patch: add support for http.agent override

We needed this to get Ivy working with a client's extremely paranoid HTTP
proxy setup. It insisted on a specific User-Agent header, so we added
support for -Dhttp.agent (same as Ant).

-- 

Index: src/java/org/apache/ivy/util/url/AbstractURLHandler.java
===================================================================
--- src/java/org/apache/ivy/util/url/AbstractURLHandler.java    (revision
1573075)
+++ src/java/org/apache/ivy/util/url/AbstractURLHandler.java    (working
copy)
@@ -30,6 +30,7 @@
 import java.util.zip.GZIPInputStream;
 import java.util.zip.Inflater;
 import java.util.zip.InflaterInputStream;
+import org.apache.ivy.Ivy;

 public abstract class AbstractURLHandler implements URLHandler {

@@ -62,6 +63,14 @@
         return getURLInfo(url, timeout).getLastModified();
     }

+    protected String getUserAgent() {
+        String userAgent = System.getProperty("http.agent");
+        if (userAgent == null) {
+            userAgent = "Apache Ivy/" + Ivy.getIvyVersion();
+        }
+        return userAgent;
+    }
+
     protected void validatePutStatusCode(URL dest, int statusCode, String
statusMessage)
             throws IOException {
         switch (statusCode) {
Index: src/java/org/apache/ivy/util/url/BasicURLHandler.java
===================================================================
--- src/java/org/apache/ivy/util/url/BasicURLHandler.java    (revision
1573075)
+++ src/java/org/apache/ivy/util/url/BasicURLHandler.java    (working copy)
@@ -64,7 +64,7 @@
         try {
             url = normalizeToURL(url);
             con = url.openConnection();
-            con.setRequestProperty("User-Agent", "Apache Ivy/" +
Ivy.getIvyVersion());
+            con.setRequestProperty("User-Agent", getUserAgent());
             if (con instanceof HttpURLConnection) {
                 HttpURLConnection httpCon = (HttpURLConnection) con;
                 if (getRequestMethod() == URLHandler.REQUEST_METHOD_HEAD) {
@@ -159,7 +159,7 @@
         try {
             url = normalizeToURL(url);
             conn = url.openConnection();
-            conn.setRequestProperty("User-Agent", "Apache Ivy/" +
Ivy.getIvyVersion());
+            conn.setRequestProperty("User-Agent", getUserAgent());
             conn.setRequestProperty("Accept-Encoding", "gzip,deflate");
             if (conn instanceof HttpURLConnection) {
                 HttpURLConnection httpCon = (HttpURLConnection) conn;
@@ -193,7 +193,7 @@
         try {
             src = normalizeToURL(src);
             srcConn = src.openConnection();
-            srcConn.setRequestProperty("User-Agent", "Apache Ivy/" +
Ivy.getIvyVersion());
+            srcConn.setRequestProperty("User-Agent", getUserAgent());
             srcConn.setRequestProperty("Accept-Encoding", "gzip,deflate");
             if (srcConn instanceof HttpURLConnection) {
                 HttpURLConnection httpCon = (HttpURLConnection) srcConn;
@@ -244,7 +244,7 @@
             conn = (HttpURLConnection) dest.openConnection();
             conn.setDoOutput(true);
             conn.setRequestMethod("PUT");
-            conn.setRequestProperty("User-Agent", "Apache Ivy/" +
Ivy.getIvyVersion());
+            conn.setRequestProperty("User-Agent", getUserAgent());
             conn.setRequestProperty("Content-type",
"application/octet-stream");
             conn.setRequestProperty("Content-length",
Long.toString(source.length()));
             conn.setInstanceFollowRedirects(true);
Index: src/java/org/apache/ivy/util/url/HttpClientHandler.java
===================================================================
--- src/java/org/apache/ivy/util/url/HttpClientHandler.java    (revision
1573075)
+++ src/java/org/apache/ivy/util/url/HttpClientHandler.java    (working
copy)
@@ -295,7 +295,7 @@

             // user-agent

httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,
-                "Apache Ivy/" + Ivy.getIvyVersion());
+                getUserAgent());

             // authentication

httpClient.getParams().setParameter(CredentialsProvider.PROVIDER,


-- 
Tony Likhite

Re: Patch: add support for http.agent override

Posted by Antoine Levy Lambert <an...@gmx.de>.
Hello Tony,

thanks for your contribution, patch submitted.

Regards,

Antoine
On Feb 28, 2014, at 10:15 PM, Tony Likhite <to...@likhite.net> wrote:

> We needed this to get Ivy working with a client's extremely paranoid HTTP
> proxy setup. It insisted on a specific User-Agent header, so we added
> support for -Dhttp.agent (same as Ant).
> 
> -- 
> 
> Index: src/java/org/apache/ivy/util/url/AbstractURLHandler.java
> ===================================================================
> --- src/java/org/apache/ivy/util/url/AbstractURLHandler.java    (revision
> 1573075)
> +++ src/java/org/apache/ivy/util/url/AbstractURLHandler.java    (working
> copy)
> @@ -30,6 +30,7 @@
> import java.util.zip.GZIPInputStream;
> import java.util.zip.Inflater;
> import java.util.zip.InflaterInputStream;
> +import org.apache.ivy.Ivy;
> 
> public abstract class AbstractURLHandler implements URLHandler {
> 
> @@ -62,6 +63,14 @@
>         return getURLInfo(url, timeout).getLastModified();
>     }
> 
> +    protected String getUserAgent() {
> +        String userAgent = System.getProperty("http.agent");
> +        if (userAgent == null) {
> +            userAgent = "Apache Ivy/" + Ivy.getIvyVersion();
> +        }
> +        return userAgent;
> +    }
> +
>     protected void validatePutStatusCode(URL dest, int statusCode, String
> statusMessage)
>             throws IOException {
>         switch (statusCode) {
> Index: src/java/org/apache/ivy/util/url/BasicURLHandler.java
> ===================================================================
> --- src/java/org/apache/ivy/util/url/BasicURLHandler.java    (revision
> 1573075)
> +++ src/java/org/apache/ivy/util/url/BasicURLHandler.java    (working copy)
> @@ -64,7 +64,7 @@
>         try {
>             url = normalizeToURL(url);
>             con = url.openConnection();
> -            con.setRequestProperty("User-Agent", "Apache Ivy/" +
> Ivy.getIvyVersion());
> +            con.setRequestProperty("User-Agent", getUserAgent());
>             if (con instanceof HttpURLConnection) {
>                 HttpURLConnection httpCon = (HttpURLConnection) con;
>                 if (getRequestMethod() == URLHandler.REQUEST_METHOD_HEAD) {
> @@ -159,7 +159,7 @@
>         try {
>             url = normalizeToURL(url);
>             conn = url.openConnection();
> -            conn.setRequestProperty("User-Agent", "Apache Ivy/" +
> Ivy.getIvyVersion());
> +            conn.setRequestProperty("User-Agent", getUserAgent());
>             conn.setRequestProperty("Accept-Encoding", "gzip,deflate");
>             if (conn instanceof HttpURLConnection) {
>                 HttpURLConnection httpCon = (HttpURLConnection) conn;
> @@ -193,7 +193,7 @@
>         try {
>             src = normalizeToURL(src);
>             srcConn = src.openConnection();
> -            srcConn.setRequestProperty("User-Agent", "Apache Ivy/" +
> Ivy.getIvyVersion());
> +            srcConn.setRequestProperty("User-Agent", getUserAgent());
>             srcConn.setRequestProperty("Accept-Encoding", "gzip,deflate");
>             if (srcConn instanceof HttpURLConnection) {
>                 HttpURLConnection httpCon = (HttpURLConnection) srcConn;
> @@ -244,7 +244,7 @@
>             conn = (HttpURLConnection) dest.openConnection();
>             conn.setDoOutput(true);
>             conn.setRequestMethod("PUT");
> -            conn.setRequestProperty("User-Agent", "Apache Ivy/" +
> Ivy.getIvyVersion());
> +            conn.setRequestProperty("User-Agent", getUserAgent());
>             conn.setRequestProperty("Content-type",
> "application/octet-stream");
>             conn.setRequestProperty("Content-length",
> Long.toString(source.length()));
>             conn.setInstanceFollowRedirects(true);
> Index: src/java/org/apache/ivy/util/url/HttpClientHandler.java
> ===================================================================
> --- src/java/org/apache/ivy/util/url/HttpClientHandler.java    (revision
> 1573075)
> +++ src/java/org/apache/ivy/util/url/HttpClientHandler.java    (working
> copy)
> @@ -295,7 +295,7 @@
> 
>             // user-agent
> 
> httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,
> -                "Apache Ivy/" + Ivy.getIvyVersion());
> +                getUserAgent());
> 
>             // authentication
> 
> httpClient.getParams().setParameter(CredentialsProvider.PROVIDER,
> 
> 
> -- 
> Tony Likhite


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org