After upgrading from 3.2.0 to 4.0.3 urlrewritefilter is unable to recognize my
variables.
With an entry like this in urlrewrite.xml:
<set name="cookie-value">%{cookie:cookie_name}</set>
I used to see either the cookie contents in the attribute cookie-value (or null
in case of a non-existing cookie).
Using 4.0.3 I see the literal string '%{cookie:cookie_name}' which is
unexpected. If underscore is not a valid token in variable one would expect
either an exception to be thrown or in the worst case null should be assigned
to the cookie-value attribute.
I fail to see why under shouldn't be allowed as a variable name token as it
limits the possibilities to make cookies and query strings (which often aren't
under your direct control).
I'm running the code on both Linux and Mac OS X (in development).
The interesting code snippets are:
https://code.google.com/p/urlrewritefilter/source/browse/tags/3.2.0/src/java/org
/tuckey/web/filters/urlrewrite/VariableReplacer.java
private static Pattern toVariablePattern = Pattern.compile("(?<!\\\\)%\\{(.*?)\\}");
https://code.google.com/p/urlrewritefilter/source/browse/tags/4.0.1/src/java/org
/tuckey/web/filters/urlrewrite/substitution/VariableReplacer.java
private static Pattern toVariablePattern = Pattern.compile("(?<!\\\\)%\\{([-a-zA-Z:]*)\\}");
Original issue reported on code.google.com by mr.krist...@gmail.com on 3 Feb 2014 at 12:25
Original issue reported on code.google.com by
mr.krist...@gmail.com
on 3 Feb 2014 at 12:25