/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(Collection<String> keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(String... keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
private static void addType3NTLMAuthorizationHeader(String auth, FluentCaseInsensitiveStringsMap headers, Realm realm, boolean proxyInd) throws NTLMEngineException { headers.remove(authorizationHeaderName(proxyInd)); if (isNonEmpty(auth) && auth.startsWith("NTLM ")) { String serverChallenge = auth.substring("NTLM ".length()).trim(); String challengeHeader = NTLMEngine.INSTANCE.generateType3Msg( realm.getPrincipal(), realm.getPassword(), realm.getNtlmDomain(), realm.getNtlmHost(), serverChallenge); addNTLMAuthorizationHeader(headers, challengeHeader, proxyInd); } }
private void addType3NTLMAuthorizationHeader(String auth, FluentCaseInsensitiveStringsMap headers, Realm realm, boolean proxyInd) throws NTLMEngineException { headers.remove(authorizationHeaderName(proxyInd)); if (isNonEmpty(auth) && auth.startsWith("NTLM ")) { String serverChallenge = auth.substring("NTLM ".length()).trim(); String challengeHeader = NTLMEngine.INSTANCE.generateType3Msg(realm.getPrincipal(), realm.getPassword(), realm.getNtlmDomain(), realm.getNtlmHost(), serverChallenge); addNTLMAuthorizationHeader(headers, challengeHeader, proxyInd); } }
private static Request newRequest(final HttpTransactionContext ctx, final Uri newUri, final HttpResponsePacket response, final Realm realm, boolean asGet) { final Request prototype = ctx.getAhcRequest(); final FluentCaseInsensitiveStringsMap prototypeHeaders = prototype.getHeaders(); prototypeHeaders.remove(Header.Host.toString()); prototypeHeaders.remove(Header.ContentLength.toString()); if (asGet) prototypeHeaders.remove(Header.ContentType.toString()); if (realm != null && realm.getScheme() == AuthScheme.NTLM) { prototypeHeaders.remove(Header.Authorization.toString()); prototypeHeaders.remove(Header.ProxyAuthorization.toString()); } final RequestBuilder builder = new RequestBuilder(prototype); if (asGet) { builder.setMethod("GET"); } builder.setUrl(newUri.toString()); for (String cookieStr : response.getHeaders().values(Header.SetCookie)) { builder.addOrReplaceCookie(CookieDecoder.decode(cookieStr)); } return builder.build(); }
private Realm ntlmProxyChallenge(String wwwAuth, Request request, ProxyServer proxyServer, FluentCaseInsensitiveStringsMap headers, NettyResponseFuture<?> future) throws NTLMEngineException { future.getAndSetAuth(false); headers.remove(HttpHeaders.Names.PROXY_AUTHORIZATION); Realm realm = proxyServer.realmBuilder()// .setScheme(AuthScheme.NTLM)// .setUri(request.getUri())// .setMethodName(request.getMethod()).build(); addType3NTLMAuthorizationHeader(wwwAuth, headers, realm, true); return realm; }
/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(Collection<String> keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(Collection<String> keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(String... keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(String... keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
/** * Removes the values for the given keys if present and returns this object. * * @param keys The keys * @return This object */ public FluentCaseInsensitiveStringsMap deleteAll(String... keys) { if (keys != null) { for (String key : keys) { remove(key); } } return this; }
private static Realm ntlmProxyChallenge(final Connection c, final String wwwAuth, final Request request, final ProxyServer proxyServer) throws NTLMEngineException { final FluentCaseInsensitiveStringsMap headers = request.getHeaders(); headers.remove(Header.ProxyAuthorization.toString()); Realm realm = proxyServer.realmBuilder()// .setScheme(AuthScheme.NTLM)// .setUri(request.getUri())// .setMethodName(request.getMethod()).build(); addType3NTLMAuthorizationHeader(wwwAuth, headers, realm, true); // we mark NTLM as established for the Connection to // avoid preemptive NTLM Utils.setNtlmEstablished(c); return realm; }
private Realm kerberosProxyChallenge(Channel channel,// List<String> proxyAuth,// Request request,// ProxyServer proxyServer,// FluentCaseInsensitiveStringsMap headers,// NettyResponseFuture<?> future) throws NTLMEngineException { Uri uri = request.getUri(); try { String challengeHeader = SpnegoEngine.INSTANCE.generateToken(proxyServer.getHost()); headers.remove(HttpHeaders.Names.AUTHORIZATION); headers.add(HttpHeaders.Names.AUTHORIZATION, "Negotiate " + challengeHeader); return proxyServer.realmBuilder()// .setUri(uri)// .setMethodName(request.getMethod())// .setScheme(Realm.AuthScheme.KERBEROS)// .build(); } catch (Throwable throwable) { String ntlmAuthenticate = getNTLM(proxyAuth); if (ntlmAuthenticate != null) { return ntlmProxyChallenge(ntlmAuthenticate, request, proxyServer, headers, future); } requestSender.abort(channel, future, throwable); return null; } }
private Realm kerberosChallenge(Channel channel,// List<String> authHeaders,// Request request,// FluentCaseInsensitiveStringsMap headers,// Realm realm,// NettyResponseFuture<?> future) throws NTLMEngineException { Uri uri = request.getUri(); String host = request.getVirtualHost() == null ? uri.getHost() : request.getVirtualHost(); try { String challengeHeader = SpnegoEngine.INSTANCE.generateToken(host); headers.remove(HttpHeaders.Names.AUTHORIZATION); headers.add(HttpHeaders.Names.AUTHORIZATION, "Negotiate " + challengeHeader); return new Realm.RealmBuilder().clone(realm)// .setUri(uri)// .setMethodName(request.getMethod())// .setScheme(Realm.AuthScheme.KERBEROS)// .build(); } catch (Throwable throwable) { String ntlmAuthenticate = getNTLM(authHeaders); if (ntlmAuthenticate != null) { return ntlmChallenge(ntlmAuthenticate, request, headers, realm, future); } requestSender.abort(channel, future, throwable); return null; } }
private void addType3NTLMAuthorizationHeader(List<String> auth, FluentCaseInsensitiveStringsMap headers, String username, String password, String domain, String workstation, boolean proxyInd) throws NTLMEngineException { headers.remove(authorizationHeaderName(proxyInd)); if (isNonEmpty(auth) && auth.get(0).startsWith("NTLM ")) { String serverChallenge = auth.get(0).trim().substring("NTLM ".length()); String challengeHeader = NTLMEngine.INSTANCE.generateType3Msg(username, password, domain, workstation, serverChallenge); addNTLMAuthorizationHeader(headers, challengeHeader, proxyInd); } }
private static void addType3NTLMAuthorizationHeader(String auth, FluentCaseInsensitiveStringsMap headers, Realm realm, boolean proxyInd) throws NTLMEngineException { headers.remove(authorizationHeaderName(proxyInd)); if (isNonEmpty(auth) && auth.startsWith("NTLM ")) { String serverChallenge = auth.substring("NTLM ".length()).trim(); String challengeHeader = NTLMEngine.INSTANCE.generateType3Msg( realm.getPrincipal(), realm.getPassword(), realm.getNtlmDomain(), realm.getNtlmHost(), serverChallenge); addNTLMAuthorizationHeader(headers, challengeHeader, proxyInd); } }
private static void addType3NTLMAuthorizationHeader(String auth, FluentCaseInsensitiveStringsMap headers, Realm realm, boolean proxyInd) throws NTLMEngineException { headers.remove(authorizationHeaderName(proxyInd)); if (isNonEmpty(auth) && auth.startsWith("NTLM ")) { String serverChallenge = auth.substring("NTLM ".length()).trim(); String challengeHeader = NTLMEngine.INSTANCE.generateType3Msg( realm.getPrincipal(), realm.getPassword(), realm.getNtlmDomain(), realm.getNtlmHost(), serverChallenge); addNTLMAuthorizationHeader(headers, challengeHeader, proxyInd); } }
private Realm ntlmProxyChallenge(List<String> wwwAuth, Request request, ProxyServer proxyServer, FluentCaseInsensitiveStringsMap headers, Realm realm, NettyResponseFuture<?> future, boolean proxyInd) throws NTLMEngineException { future.getAndSetAuth(false); headers.remove(HttpHeaders.Names.PROXY_AUTHORIZATION); addType3NTLMAuthorizationHeader(wwwAuth, headers, proxyServer.getPrincipal(), proxyServer.getPassword(), proxyServer.getNtlmDomain(), proxyServer.getHost(), proxyInd); return newRealmBuilder(realm)// // .setScheme(realm.getAuthScheme()) .setUri(request.getURI())// .setMethodName(request.getMethod()).build(); }
public FilterContext filter(FilterContext ctx) throws FilterException { // pass on the x-expect-get and remove the x-redirect // headers if found in the response ctx.getResponseHeaders().getHeaders().get("x-expect-post"); ctx.getRequest().getHeaders().add("x-expect-post", "true"); ctx.getRequest().getHeaders().remove("x-redirect"); return ctx; } }).build();
public FilterContext filter(FilterContext ctx) throws FilterException { // pass on the x-expect-get and remove the x-redirect // headers if found in the response ctx.getResponseHeaders().getHeaders().get("x-expect-get"); ctx.getRequest().getHeaders().add("x-expect-get", "true"); ctx.getRequest().getHeaders().remove("x-redirect"); return ctx; } }).build();