render_to_buffer does not work for absolute URLs
------------------------------------------------

                 Key: WICKET-1974
                 URL: https://issues.apache.org/jira/browse/WICKET-1974
             Project: Wicket
          Issue Type: Improvement
          Components: wicket, wicket-auth-roles
    Affects Versions: 1.4-RC1
            Reporter: Erik van Oosten


After installing a WebRequest instance that makes all URLs absolute, 
render_to_buffer does not work anymore. The problem is that WicketFilter 
assumes that all URLs are relative (WebFilter#getRelativePath removes the first 
char of the URL).

Proposed fixes:
-1- in WebApplication#addBufferedResponse remove the leading "/" from the 
buffer id when present
-2- or alternatively, remove the leading "/" from the URL (when present) in 
WebRequestCycle, just before addBudderedResponse is called


Here is the installed AbsoluteServletWebRequest:

/**
 * WebServletRequest that makes bookmarkable links absolute.
 *
 * @author Erik van Oosten
 */
public class AbsoluteServletWebRequest extends ServletWebRequest {

    public AbsoluteServletWebRequest(HttpServletRequest servletRequest) {
        super(servletRequest);
    }

    @Override
    public int getDepthRelativeToWicketHandler() {
        return 0;
    }

    @Override
    public String getRelativePathPrefixToWicketHandler() {
        return "/";
    }

    @Override
    public String getRelativePathPrefixToContextRoot() {
        return "/";
    }
}


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

Reply via email to