public static String perConnectionProxyAuthorizationHeader(Request request, Realm proxyRealm) { String proxyAuthorization = null; if (proxyRealm != null && proxyRealm.isUsePreemptiveAuth()) { switch (proxyRealm.getScheme()) { case NTLM: case KERBEROS: case SPNEGO: List<String> auth = request.getHeaders().getAll(PROXY_AUTHORIZATION); if (getHeaderWithPrefix(auth, "NTLM") == null) { String msg = NtlmEngine.INSTANCE.generateType1Msg(); proxyAuthorization = "NTLM " + msg; } break; default: } } return proxyAuthorization; }
if (getHeaderWithPrefix(wwwAuthHeaders, "Basic") == null) { LOGGER.info("Can't handle 401 with Basic realm as WWW-Authenticate headers don't match"); return false; String digestHeader = getHeaderWithPrefix(wwwAuthHeaders, "Digest"); if (digestHeader == null) { LOGGER.info("Can't handle 401 with Digest realm as WWW-Authenticate headers don't match"); String ntlmHeader = getHeaderWithPrefix(wwwAuthHeaders, "NTLM"); if (ntlmHeader == null) { LOGGER.info("Can't handle 401 with NTLM realm as WWW-Authenticate headers don't match"); if (getHeaderWithPrefix(wwwAuthHeaders, NEGOTIATE) == null) { LOGGER.info("Can't handle 401 with Kerberos or Spnego realm as WWW-Authenticate headers don't match"); return false; String ntlmHeader2 = getHeaderWithPrefix(wwwAuthHeaders, "NTLM"); if (ntlmHeader2 != null) { LOGGER.warn("Kerberos/Spnego auth failed, proceeding with NTLM");
if (getHeaderWithPrefix(proxyAuthHeaders, "Basic") == null) { LOGGER.info("Can't handle 407 with Basic realm as Proxy-Authenticate headers don't match"); return false; String digestHeader = getHeaderWithPrefix(proxyAuthHeaders, "Digest"); if (digestHeader == null) { LOGGER.info("Can't handle 407 with Digest realm as Proxy-Authenticate headers don't match"); String ntlmHeader = getHeaderWithPrefix(proxyAuthHeaders, "NTLM"); if (ntlmHeader == null) { LOGGER.info("Can't handle 407 with NTLM realm as Proxy-Authenticate headers don't match"); if (getHeaderWithPrefix(proxyAuthHeaders, NEGOTIATE) == null) { LOGGER.info("Can't handle 407 with Kerberos or Spnego realm as Proxy-Authenticate headers don't match"); return false; String ntlmHeader2 = getHeaderWithPrefix(proxyAuthHeaders, "NTLM"); if (ntlmHeader2 != null) { LOGGER.warn("Kerberos/Spnego proxy auth failed, proceeding with NTLM");