[
https://issues.apache.org/jira/browse/WW-3529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Richard Vermillion updated WW-3529:
-----------------------------------
Attachment: NamedVariablePatternMatcher.patch
Added a patch to NamedVariabelPatternMatcher.java
> In xwork-core, NamedVariablePatternMatcher does not properly escape characters
> ------------------------------------------------------------------------------
>
> Key: WW-3529
> URL: https://issues.apache.org/jira/browse/WW-3529
> Project: Struts 2
> Issue Type: Bug
> Components: Other
> Affects Versions: 2.2.1
> Reporter: Richard Vermillion
> Attachments: NamedVariablePatternMatcher.patch
>
>
> The com.opensymphony.xwork2.util.NamedVariablePatternMatcher class has a bug
> in the compilePattern(String) method. The purpose of the method is to
> compile patterns such as "action/{foo}" to a regular expression Pattern and
> extract the variable names that match each group in the regex. In the
> example given and the 2.2.1 code base, the pattern will be compiled as
> "action/([^/]+)". However, if the pattern includes characters that have
> special meaning to Java's regular expression engine, they are currently not
> being escaped.
> For example, the pattern "action.{format}" is being compiled to
> "action.([^/]+)" which correctly matches "action.html" but also
> "actionK.html" or any other character because the '.' is not escaped. The
> bug really bites when a pattern like "{name}.{format}" is used. This will be
> compiled to "([^/]+).([^/]+)" which will match "cars.html" but not the way
> you expect. Because of greediness, it will set name = "cars.ht" and format =
> "l".
> I will submit a patch to fix this behavior on the next screen.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.