Hello,

On Thu, Jun 9, 2011 at 4:27 AM, Pid <p...@pidster.com> wrote:
>
> Not quite the same, but similar, is the following:
> If you're using Tomcat 7, you have Servlet 3 compatibility, which means
> you can serve resources out of a specially* constructed jar.
>
> * Put resources in: myresource.jar:/META-INF/resources and they will
> appear as from the root of the webapp.
> e.g.  /META-INF/resources/logo.gif -> /logo.gif

That is pretty cool! Thanks for sharing that tip.

I did not find anything with tuckey urlrewrite, so I just wrote a
quick javax.servlet.Filter. It sanity checks: 1) no ?gzip=false
parameter (a la Tomcat's compression filter), and 2) Accept-Encoding:
{,x-}gzip in any of the headers, and 3)  that "" new
File(request.getContextPath().substring(1) +
DEFAULT_GZIP_FILE_EXTENSION) "" exists.

On any FNFE / IOE, silently discard the exception and run the rest of
the chain; otherwise setting response header Content-Encoding: gzip
and copying the compressed version directly to the
response.outputStream before closing it.

It seems to work alright. My only concerns lay with: 1) malicious
contextPaths with ../../-style navigation, and 2) unpacked WARs which
contain the gzipped resource will take FNFE and not serve the
pre-compressed output as expected, and last and least 3) Accept-Range
is completely ignored.

For # 1: Is there some better way I should be obtaining the resource?
For # 2-3: Would it be better for me to just issue response.sendRedirect()?

Thanks,

-Jesse

-- 
There are 10 types of people in this world, those
that can read binary and those that can not.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to