From 091de1fad85405fc359ac502b3d4858c425a76df Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 28 Feb 2011 18:15:48 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=28852 Add URL encoding where missing to parameters in URLs presented by Ant tasks to the Manager application. Based on a patch by Stephane Bailliez. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1075458 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/ant/JMXGetTask.java | 14 +++++++++++--- java/org/apache/catalina/ant/JMXQueryTask.java | 15 ++++++++++++++- java/org/apache/catalina/ant/JMXSetTask.java | 14 +++++++++++--- java/org/apache/catalina/ant/ResourcesTask.java | 11 ++++++++++- java/org/apache/catalina/ant/UndeployTask.java | 11 ++++++++++- webapps/docs/changelog.xml | 11 +++++++++++ 6 files changed, 67 insertions(+), 9 deletions(-) diff --git a/java/org/apache/catalina/ant/JMXGetTask.java b/java/org/apache/catalina/ant/JMXGetTask.java index 2f205e32b..c5899da04 100644 --- a/java/org/apache/catalina/ant/JMXGetTask.java +++ b/java/org/apache/catalina/ant/JMXGetTask.java @@ -19,6 +19,9 @@ package org.apache.catalina.ant; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + import org.apache.tools.ant.BuildException; @@ -90,8 +93,13 @@ public class JMXGetTask extends AbstractCatalinaTask { ("Must specify 'bean' and 'attribute' attributes"); } log("Getting attribute " + attribute + - " in bean " + bean ); - execute("/jmxproxy/?get=" + bean - + "&att=" + attribute ); + " in bean " + bean ); + try { + execute("/jmxproxy/?get=" + URLEncoder.encode(bean, getCharset()) + + "&att=" + URLEncoder.encode(attribute, getCharset())); + } catch (UnsupportedEncodingException e) { + throw new BuildException + ("Invalid 'charset' attribute: " + getCharset()); + } } } diff --git a/java/org/apache/catalina/ant/JMXQueryTask.java b/java/org/apache/catalina/ant/JMXQueryTask.java index 8cd960a5e..e5f030d4e 100644 --- a/java/org/apache/catalina/ant/JMXQueryTask.java +++ b/java/org/apache/catalina/ant/JMXQueryTask.java @@ -19,6 +19,9 @@ package org.apache.catalina.ant; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + import org.apache.tools.ant.BuildException; @@ -73,7 +76,17 @@ public class JMXQueryTask extends AbstractCatalinaTask { @Override public void execute() throws BuildException { super.execute(); - String queryString = (query == null) ? "":("?qry="+query); + String queryString; + if (query == null) { + queryString = ""; + } else { + try { + queryString = "?qry=" + URLEncoder.encode(query, getCharset()); + } catch (UnsupportedEncodingException e) { + throw new BuildException + ("Invalid 'charset' attribute: " + getCharset()); + } + } log("Query string is " + queryString); execute ("/jmxproxy/" + queryString); } diff --git a/java/org/apache/catalina/ant/JMXSetTask.java b/java/org/apache/catalina/ant/JMXSetTask.java index 12c562eaf..292ce09a4 100644 --- a/java/org/apache/catalina/ant/JMXSetTask.java +++ b/java/org/apache/catalina/ant/JMXSetTask.java @@ -19,6 +19,9 @@ package org.apache.catalina.ant; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + import org.apache.tools.ant.BuildException; @@ -113,8 +116,13 @@ public class JMXSetTask extends AbstractCatalinaTask { log("Setting attribute " + attribute + " in bean " + bean + " to " + value); - execute("/jmxproxy/?set=" + bean - + "&att=" + attribute - + "&val=" + value); + try { + execute("/jmxproxy/?set=" + URLEncoder.encode(bean, getCharset()) + + "&att=" + URLEncoder.encode(attribute, getCharset()) + + "&val=" + URLEncoder.encode(value, getCharset())); + } catch (UnsupportedEncodingException e) { + throw new BuildException + ("Invalid 'charset' attribute: " + getCharset()); + } } } diff --git a/java/org/apache/catalina/ant/ResourcesTask.java b/java/org/apache/catalina/ant/ResourcesTask.java index 43309369b..a90febde0 100644 --- a/java/org/apache/catalina/ant/ResourcesTask.java +++ b/java/org/apache/catalina/ant/ResourcesTask.java @@ -19,6 +19,9 @@ package org.apache.catalina.ant; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + import org.apache.tools.ant.BuildException; @@ -64,7 +67,13 @@ public class ResourcesTask extends AbstractCatalinaTask { super.execute(); if (type != null) { - execute("/resources?type=" + type); + try { + execute("/resources?type=" + + URLEncoder.encode(type, getCharset())); + } catch (UnsupportedEncodingException e) { + throw new BuildException + ("Invalid 'charset' attribute: " + getCharset()); + } } else { execute("/resources"); } diff --git a/java/org/apache/catalina/ant/UndeployTask.java b/java/org/apache/catalina/ant/UndeployTask.java index 85f902324..7564a7fbb 100644 --- a/java/org/apache/catalina/ant/UndeployTask.java +++ b/java/org/apache/catalina/ant/UndeployTask.java @@ -19,6 +19,9 @@ package org.apache.catalina.ant; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + import org.apache.tools.ant.BuildException; @@ -66,7 +69,13 @@ public class UndeployTask extends AbstractCatalinaTask { ("Must specify 'path' attribute"); } - execute("/undeploy?path=" + this.path); + try { + execute("/undeploy?path=" + + URLEncoder.encode(this.path, getCharset())); + } catch (UnsupportedEncodingException e) { + throw new BuildException + ("Invalid 'charset' attribute: " + getCharset()); + } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index b255c3725..bc388142f 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -42,6 +42,17 @@ General, Catalina, Coyote, Jasper, Cluster, Web applications, Extras, Tribes, Other --> +
+ + + + 28852: Add URL encoding where missing to parameters in URLs + presented by Ant tasks to the Manager application. Based on a patch by + Stephane Bailliez. (mark) + + + +
-- 2.11.0