Hi,
I use a regular servlet filter for this:
Filter:
public class StripUrlSessionIdFilter
implements Filter {
public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain)
throws IOException, ServletException {
if (!(request instanceof HttpServletRequest)) {
chain.doFilter(request, response);
return;
}
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
if (httpRequest.isRequestedSessionIdFromURL()) {
HttpSession session = httpRequest.getSession();
if (session != null) session.invalidate();
}
HttpServletResponseWrapper wrappedResponse = new
StripUrlSessionIdHttpServletResponseWrapper(httpResponse);
chain.doFilter(request, wrappedResponse);
}
public void init(FilterConfig config) throws ServletException {
}
public void destroy() {
}
private static class StripUrlSessionIdHttpServletResponseWrapper
extends HttpServletResponseWrapper {
public
StripUrlSessionIdHttpServletResponseWrapper(HttpServletResponse
httpResponse) {
super(httpResponse);
}
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;
}
}
}
Mapping:
<filter>
<filter-name>strip</filter-name>
<filter-class>com.example.StripUrlSessionIdFilter</filter-class>
</filter>
<filter>
<filter-name>app</filter-name>
<filter-class>org.apache.tapestry5.TapestryFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>strip</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>app</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Try that, it works.
-Filip
Britske skrev:
Yep I tried that, but when I converted a working stripping servletfilter to a
requestfiler, I have to deal with tapestry's request and response in
addition to sevlet.HttpServletRequest and servlet.httpServletRepsonse.
Although I override both (Response and HttpServletResponse, since I guess
some code uses Response while some use HttpServletResponse) still no luck.
<snip/>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]