]> source.dussan.org Git - jgit.git/commit
smart-http: Fix recognition of gzip encoding 45/2545/1
authorShawn O. Pearce <spearce@spearce.org>
Tue, 15 Feb 2011 22:09:42 +0000 (14:09 -0800)
committerMatthias Sohn <matthias.sohn@sap.com>
Sun, 20 Feb 2011 23:51:11 +0000 (00:51 +0100)
commitbd1c1156a06576f4339af4cb9a5cfddfcc80154e
tree49e9fa92e839049fe3f7e6aaa0a2e2040633d73e
parent57d13c047ffbe9d17d1eec966ae8f67f15184605
smart-http: Fix recognition of gzip encoding

Some clients coming through proxies may advertise a different
Accept-Encoding, for example "Accept-Encoding: gzip(proxy)".
Matching by substring causes us to identify this as a false positive;
that the client understands gzip encoding and will inflate the
response before reading it.

In this particular case however it doesn't.  Its the reverse proxy
server in front of JGit letting us know the proxy<->JGit link can
be gzip compressed, while the client<->proxy part of the link is not:

  client <-- no gzip --> proxy <-- gzip --> JGit

Use a more standard method of parsing by splitting the value into
tokens, and only using gzip if one of the tokens is exactly the
string "gzip".  Add a unit test to make sure this isn't broken in
the future.

Change-Id: Ib4c40f9db177322c7a2640808a6c10b3c4a73819
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ServletUtils.java
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/server/ServletUtilsTest.java [new file with mode: 0644]