|
13 | 13 | */
|
14 | 14 | package com.ning.http.client.providers.netty.handler;
|
15 | 15 |
|
16 |
| -import static com.ning.http.client.providers.netty.util.HttpUtils.isNTLM; |
| 16 | +import static com.ning.http.client.providers.netty.util.HttpUtils.getNTLM; |
17 | 17 | import static com.ning.http.util.AsyncHttpProviderUtils.getDefaultPort;
|
18 | 18 | import static com.ning.http.util.MiscUtils.isNonEmpty;
|
19 | 19 | import static org.jboss.netty.handler.codec.http.HttpResponseStatus.CONTINUE;
|
@@ -90,8 +90,9 @@ private Realm kerberosChallenge(Channel channel,//
|
90 | 90 | .build();
|
91 | 91 |
|
92 | 92 | } catch (Throwable throwable) {
|
93 |
| - if (isNTLM(proxyAuth)) { |
94 |
| - return ntlmChallenge(proxyAuth.get(0), request, proxyServer, headers, realm, future, proxyInd); |
| 93 | + String ntlmAuthenticate = getNTLM(proxyAuth); |
| 94 | + if (ntlmAuthenticate != null) { |
| 95 | + return ntlmChallenge(ntlmAuthenticate, request, proxyServer, headers, realm, future, proxyInd); |
95 | 96 | }
|
96 | 97 | requestSender.abort(channel, future, throwable);
|
97 | 98 | return null;
|
@@ -218,9 +219,10 @@ private boolean exitAfterHandling401(//
|
218 | 219 | Realm newRealm = null;
|
219 | 220 |
|
220 | 221 | boolean negociate = wwwAuthHeaders.contains("Negotiate");
|
221 |
| - if (!wwwAuthHeaders.contains("Kerberos") && (isNTLM(wwwAuthHeaders) || negociate)) { |
| 222 | + String ntlmAuthenticate = getNTLM(wwwAuthHeaders); |
| 223 | + if (!wwwAuthHeaders.contains("Kerberos") && ntlmAuthenticate != null) { |
222 | 224 | // NTLM
|
223 |
| - newRealm = ntlmChallenge(wwwAuthHeaders.get(0), request, proxyServer, request.getHeaders(), realm, future, false); |
| 225 | + newRealm = ntlmChallenge(ntlmAuthenticate, request, proxyServer, request.getHeaders(), realm, future, false); |
224 | 226 |
|
225 | 227 | // don't forget to reuse channel: NTLM authenticates a connection
|
226 | 228 | future.setReuseChannel(true);
|
@@ -304,8 +306,9 @@ private boolean exitAfterHandling407(//
|
304 | 306 | FluentCaseInsensitiveStringsMap requestHeaders = request.getHeaders();
|
305 | 307 |
|
306 | 308 | boolean negociate = proxyAuthHeaders.contains("Negotiate");
|
307 |
| - if (!proxyAuthHeaders.contains("Kerberos") && (isNTLM(proxyAuthHeaders) || negociate)) { |
308 |
| - newRealm = ntlmProxyChallenge(proxyAuthHeaders.get(0), request, proxyServer, requestHeaders, realm, future, true); |
| 309 | + String ntlmAuthenticate = getNTLM(proxyAuthHeaders); |
| 310 | + if (!proxyAuthHeaders.contains("Kerberos") && ntlmAuthenticate != null) { |
| 311 | + newRealm = ntlmProxyChallenge(ntlmAuthenticate, request, proxyServer, requestHeaders, realm, future, true); |
309 | 312 | // SPNEGO KERBEROS
|
310 | 313 | } else if (negociate) {
|
311 | 314 | newRealm = kerberosChallenge(channel, proxyAuthHeaders, request, proxyServer, requestHeaders, realm, future, true);
|
|
0 commit comments