diff --git a/api/src/main/java/org/asynchttpclient/Realm.java b/api/src/main/java/org/asynchttpclient/Realm.java index 8676bdc2eb..cf2e07a3f6 100644 --- a/api/src/main/java/org/asynchttpclient/Realm.java +++ b/api/src/main/java/org/asynchttpclient/Realm.java @@ -400,7 +400,10 @@ public RealmBuilder setUsePreemptiveAuth(boolean usePreemptiveAuth) { public RealmBuilder parseWWWAuthenticateHeader(String headerLine) { setRealmName(match(headerLine, "realm")); setNonce(match(headerLine, "nonce")); - setAlgorithm(match(headerLine, "algorithm")); + String algorithm = match(headerLine, "algorithm"); + if (isNonEmpty(algorithm)) { + setAlgorithm(algorithm); + } setOpaque(match(headerLine, "opaque")); setQop(match(headerLine, "qop")); if (isNonEmpty(getNonce())) { diff --git a/providers/netty/src/main/java/org/asynchttpclient/providers/netty/handler/HttpProtocol.java b/providers/netty/src/main/java/org/asynchttpclient/providers/netty/handler/HttpProtocol.java index 61bbe02c0a..032a3d9ae1 100644 --- a/providers/netty/src/main/java/org/asynchttpclient/providers/netty/handler/HttpProtocol.java +++ b/providers/netty/src/main/java/org/asynchttpclient/providers/netty/handler/HttpProtocol.java @@ -227,7 +227,7 @@ private boolean handleUnauthorizedAndExit(int statusCode, Realm realm, final Req .parseWWWAuthenticateHeader(authenticateHeaders.get(0)).build(); } - Realm nr = new Realm.RealmBuilder().clone(newRealm).setUri(URI.create(request.getUrl()).getPath()).build(); + Realm nr = new Realm.RealmBuilder().clone(newRealm).setUri(request.getURI().getPath()).build(); final Request nextRequest = new RequestBuilder(future.getRequest()).setHeaders(request.getHeaders()).setRealm(nr).build(); LOGGER.debug("Sending authentication to {}", request.getUrl());