Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'.

This commit is contained in:
Simone Bordet 2019-10-02 10:18:40 +02:00
commit bc663d2d63
3 changed files with 14 additions and 4 deletions

View File

@ -46,7 +46,8 @@ public class ForwardedSchemeHeaderRule extends HeaderRule
@Override
protected String apply(String target, String value, HttpServletRequest request, HttpServletResponse response)
{
((Request)request).setScheme(_scheme);
Request baseRequest = Request.getBaseRequest(request);
baseRequest.setScheme(_scheme);
return target;
}
}

View File

@ -121,6 +121,8 @@ public class DigestAuthenticator extends LoginAuthenticator
try
{
Request baseRequest = Request.getBaseRequest(request);
boolean stale = false;
if (credentials != null)
{
@ -173,7 +175,7 @@ public class DigestAuthenticator extends LoginAuthenticator
}
}
int n = checkNonce(digest, (Request)request);
int n = checkNonce(digest, baseRequest);
if (n > 0)
{
@ -195,7 +197,7 @@ public class DigestAuthenticator extends LoginAuthenticator
domain = "/";
response.setHeader(HttpHeader.WWW_AUTHENTICATE.asString(), "Digest realm=\"" + _loginService.getName() +
"\", domain=\"" + domain +
"\", nonce=\"" + newNonce((Request)request) +
"\", nonce=\"" + newNonce(baseRequest) +
"\", algorithm=MD5" +
", qop=\"auth\"" +
", stale=" + stale);

View File

@ -272,12 +272,19 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http
// Parse the request buffer.
boolean handle = parseRequestBuffer();
// There could be a connection upgrade before handling
// the HTTP/1.1 request, for example PRI * HTTP/2.
// If there was a connection upgrade, the other
// connection took over, nothing more to do here.
if (getEndPoint().getConnection() != this)
break;
// Handle channel event
if (handle)
{
boolean suspended = !_channel.handle();
// We should break iteration if we have suspended or changed connection or this is not the handling thread.
// We should break iteration if we have suspended or upgraded the connection.
if (suspended || getEndPoint().getConnection() != this)
break;
}