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