myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leif Hanack (JIRA)" <...@myfaces.apache.org>
Subject [jira] Created: (MYFACES-1547) ServletExternalContextImpl.redirect did not encode URL, so URL-rewriting fail
Date Wed, 28 Feb 2007 13:31:57 GMT
ServletExternalContextImpl.redirect did not encode URL, so URL-rewriting fail
-----------------------------------------------------------------------------

                 Key: MYFACES-1547
                 URL: https://issues.apache.org/jira/browse/MYFACES-1547
             Project: MyFaces Core
          Issue Type: Bug
          Components: General
    Affects Versions: 1.1.5
            Reporter: Leif Hanack


I'm using Spring WebFlow (SWF) in combination with MyFaces/Trinidad. I have the problem that
the FlowPhaseListener from SWF is calling a method that triggers ServletExternalContextImpl.redirect
be to called.
 
ServletExternalContextImpl.java
489    public void redirect(String url) throws IOException
490    {
491        if (_servletResponse instanceof HttpServletResponse)
492        {
493          ((HttpServletResponse)_servletResponse).sendRedirect(url);
494           FacesContext.getCurrentInstance().responseComplete();            
495        }
496        else
497        {
498            throw new IllegalArgumentException("Only HttpServletResponse supported");
499        }
500    }

The redirect method is calling a sendRedirect on the response but did not encode the url,
so in case of URL-rewriting the jsessionid is not attached!

This patch would solve my problem:
 
replace line 493 with the following two lines:

String encodedUrl = ((HttpServletResponse)_servletResponse).encodeURL(url);
((HttpServletResponse)_servletResponse).sendRedirect(encodedUrl);
 
Thanks in advance, Leif


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message