Fix #5327 NPE in PushBuilder (#5328)

Signed-off-by: Greg Wilkins <gregw@webtide.com>
This commit is contained in:
Greg Wilkins 2020-09-28 13:36:56 +02:00 committed by GitHub
parent bb0c558128
commit 5e583fa9f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View File

@ -316,7 +316,7 @@ public class Request implements HttpServletRequest
HttpField authField = getHttpFields().getField(HttpHeader.AUTHORIZATION);
//TODO check what to do for digest etc etc
if (getUserPrincipal() != null && authField.getValue().startsWith("Basic"))
if (authField != null && getUserPrincipal() != null && authField.getValue().startsWith("Basic"))
fields.add(authField);
String id;

View File

@ -1873,6 +1873,25 @@ public class RequestTest
assertThat(builder.getHeader("Cookie"), not(containsString("bad")));
}
@Test
public void testPushBuilderWithIdNoAuth() throws Exception
{
String uri = "/foo/something";
Request request = new TestRequest(null, null)
{
@Override
public Principal getUserPrincipal()
{
return () -> "test";
}
};
HttpFields.Mutable fields = HttpFields.build();
request.setMetaData(new MetaData.Request("GET", HttpURI.from(uri), HttpVersion.HTTP_1_0, fields));
assertTrue(request.isPushSupported());
PushBuilder builder = request.newPushBuilder();
assertNotNull(builder);
}
@Test
public void testServletPathMapping() throws Exception
{