[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&param2=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&param2=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

        

Reply via email to