Sling should url decode the request url before trying to resolve to a resource
------------------------------------------------------------------------------
Key: SLING-1870
URL: https://issues.apache.org/jira/browse/SLING-1870
Project: Sling
Issue Type: Bug
Reporter: Clemens Wyss
Priority: Critical
e.g.:
JCR supports nodes with spaces (in its name), such as "Nice World".
When accessing this node in Sling, the request url would look something like
http://<sling host>/<path to node>/Nice%20World
unfortunately we then try to resolve /<path to node>/Nice%20World in the
JcrResourceRersolver which, of course, does NOT match/resolve!
Hence somewhere before resolving the resource we should URLDecoder.decode the
request URL ( request.getPathInfo() )
Possible solution:
SlingHttpServletRequest could provide
public String getResourceLookupPath()
{
return URLDecoder.decode( request.getPathInfo(), "UTF-8" ) );
}
This method could be used in RequestData#initResource and possibly other
places...
public Resource initResource(ResourceResolver resourceResolver) {
...
Resource resource = resourceResolver.resolve(request,
request.getResourceLookupPath() );
...
Or is it up to the JcrResourceResolver to decode the URL it gets?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.