For this, better use
http://tapestry.apache.org/tapestry4/tapestry/apidocs/org/apache/tapestry/services/ServletRequestServicerFilter.html


On 4/18/07, Andrea Chiumenti <[EMAIL PROTECTED]> wrote:

As suggested by Andreas I've added this filter (
http://randomcoder.com/articles/jsessionid-considered-harmful) to the demo
app, and  now it's working.

So I've decided to implement this solution in a more Tapestry fashion and
wrote the following class:

-----------------------------------------------------------------------------------------------------------

public class DisableUrlSessionFilter implements WebRequestServicerFilter{
    private HttpServletResponse response;
    private HttpServletRequest request;

    public void service(WebRequest webRequest, WebResponse webResponse,
WebRequestServicer webRequestServicer) throws IOException {
            HttpServletResponseWrapper wrappedResponse = new
HttpServletResponseWrapper(response) {

                public String encodeRedirectUrl(String url) {
                    return url;
                }
                public String encodeRedirectURL(String url) {
                    return url;
                }
                public String encodeUrl(String url) {
                    return url;
                }
                public String encodeURL(String url) {
                    return url;
                }
            };

            ServletWebResponse newResponse = new
ServletWebResponse(wrappedResponse);
            webRequestServicer.service(webRequest, newResponse);
    }

    public HttpServletRequest getRequest() {
        return request;
    }

    public void setRequest(HttpServletRequest request) {
        this.request = request;
    }

    public HttpServletResponse getResponse() {
        return response;
    }

    public void setResponse(HttpServletResponse response) {
        this.response = response;
    }
}

-----------------------------------------------------------------
Then I added to hive module the following lines:
<contribution configuration-id="
tapestry.request.WebRequestServicerPipeline
">
        <filter name="disableUrlSessionFilter" object="service:
jfly.webcommons.disableUrlSessionFilter"/>
</contribution>

The problem is that it doesn't work as the filter because the jsessionid
problem remains, so the HttpServletResponseWrapper encodeURL is never
called.

Why my WebRequestServicerFilter doesn't work ?




--
Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr
Tapestry / Tacos developer
Open Source / JEE Consulting

Reply via email to