Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Gorovoy2011-08-15 16:24:07 +0000
committerMichael Gorovoy2011-08-15 16:24:07 +0000
commit6fb751e2163f3293f4d6492c07135e4c8a091b2b (patch)
tree2ffa9c2335783863ae2b014e4c1d44286ab9f340
parentbfda9e0523c5821318e25772c7b00ea56eeec645 (diff)
downloadorg.eclipse.jetty.project-6fb751e2163f3293f4d6492c07135e4c8a091b2b.tar.gz
org.eclipse.jetty.project-6fb751e2163f3293f4d6492c07135e4c8a091b2b.tar.xz
org.eclipse.jetty.project-6fb751e2163f3293f4d6492c07135e4c8a091b2b.zip
354397 RewriteRegexRule handles special characters in regex group
-rw-r--r--VERSION.txt1
-rw-r--r--jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRule.java4
-rw-r--r--jetty-rewrite/src/test/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRuleTest.java2
3 files changed, 5 insertions, 2 deletions
diff --git a/VERSION.txt b/VERSION.txt
index a28985fad5..26a626d79f 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -17,6 +17,7 @@ jetty-7.5.0-SNAPSHOT
+ 353862 Improve performance of QuotedStringTokenizer.quote()
+ 354014 Content-Length is passed to wrapped response in GZipFilter
+ 354204 Charset encodings property file not used
+ + 354397 RewriteRegexRule handles special characters in regex group
+ 354466 Typo in example config of jetty-plus.xml
jetty-7.4.4.v20110707 July 7th 2011
diff --git a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRule.java b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRule.java
index f606e8ec69..ce5700155f 100644
--- a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRule.java
+++ b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRule.java
@@ -56,7 +56,7 @@ public class RewriteRegexRule extends RegexRule implements Rule.ApplyURI
target=_replacement;
for (int g=1;g<=matcher.groupCount();g++)
{
- String group = matcher.group(g);
+ String group = Matcher.quoteReplacement(matcher.group(g));
target=target.replaceAll("\\$"+g,group);
}
@@ -73,7 +73,7 @@ public class RewriteRegexRule extends RegexRule implements Rule.ApplyURI
String uri=_replacement;
for (int g=1;g<=matcher.groupCount();g++)
{
- String group = matcher.group(g);
+ String group = Matcher.quoteReplacement(matcher.group(g));
uri=uri.replaceAll("\\$"+g,group);
}
request.setRequestURI(uri);
diff --git a/jetty-rewrite/src/test/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRuleTest.java b/jetty-rewrite/src/test/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRuleTest.java
index 7d05946d1e..35bb5f4ba0 100644
--- a/jetty-rewrite/src/test/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRuleTest.java
+++ b/jetty-rewrite/src/test/java/org/eclipse/jetty/rewrite/handler/RewriteRegexRuleTest.java
@@ -26,6 +26,8 @@ public class RewriteRegexRuleTest extends AbstractRuleTestCase
{"/foo/bar",".*","/replace","/replace"},
{"/foo/bar","/xxx.*","/replace",null},
{"/foo/bar","/(.*)/(.*)","/$2/$1/xxx","/bar/foo/xxx"},
+ {"/foo/$bar",".*","/$replace","/$replace"},
+ {"/foo/$bar","/foo/(.*)","/$1/replace","/$bar/replace"},
};
private RewriteRegexRule _rule;

Back to the top