[Patch] Parameters in blocks-protocol URIs get decoded too early
----------------------------------------------------------------
Key: COCOON-1943
URL: http://issues.apache.org/jira/browse/COCOON-1943
Project: Cocoon
Issue Type: Bug
Components: - Blocks Framework
Affects Versions: 2.2-dev (Current SVN)
Reporter: Alexander Klimetschek
When you pass parameters in the query part of a block-protocol URI, eg.
"block:super:/dosomething?param1=alpha¶m2=beta", and they include some
encoded stuff, eg. "<br/>" encoded as "%3Cbr/%3E", this will get decoded before
the actual servlet request happens. This takes place in
BlockConnection.parseBlockURI() when uri.getSchemeSpecificPart() is called,
which will decode the string. Instead, one should call
uri.getRawSchemeSpecificPart(), which is exactly what the patch does.
(A little bit Off-topic): The general point here is that I am calling a form
that is handled in the super block. Since you cannot pass on request parameters
from a POST call (that comes from the browser) to the other (super) block
called via the blocks-protocol (because the only interface you have is the
Source, where you can only pass information via the URI), you have to put all
parameters in the uri. I have written a simple input module that creates a
"param1=alpha¶m2=beta" string from another input module (preferrably
request-param) so that you simply call:
"block:super:/dosomething?{params-to-uri:request-param}". This might be
integrated into Cocoon as a standard InputModule.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira