[ 
https://issues.apache.org/jira/browse/WICKET-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Erik van Oosten updated WICKET-1974:
------------------------------------

    Description: 
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.
 * Note: use this only when WickterFilter listens on the root context.
 *
 * @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 "/";
    }
}


  was:
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 "/";
    }
}



> 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
>    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.
>  * Note: use this only when WickterFilter listens on the root context.
>  *
>  * @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