Fix push over HTTP

Authentication was broken for push over HTTP when using the internal
Jetty daemon, as the ProjectQoSFilter was installed in front of the
ProjectDigestFilter and asked for the user identity in order to know
which type of queue to schedule the request onto.  This caused the
ProjectQoSFilter to always authenticate the request as ANONYMOUS,
which later caused it to reject the push because Gerrit never
permits an anonymous user to push to a project.

Moving the ProjectQoSFilter after all other filters (but just before
the servlet itself) fixes this issue.  Fortunately Guice allows
us to register the filter after the servlet, which means we just
needed to flip the order the modules are installed into the injector.

Change-Id: Ie59db01e731e4269a968f10bb5d17e94afe6518e
Signed-off-by: Shawn O. Pearce <sop@google.com>
1 file changed