/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2014 ForgeRock AS. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*/
// must import groovyx.net.http.HTTPBuilder.RequestConfigDelegate
/**
* A customizer script defines the custom closures to interact with the default implementation and customize it.
*/
//SETUP: org.apache.http
def httpHost = new HttpHost(c.serviceAddress?.host, c.serviceAddress?.port, c.serviceAddress?.scheme);
// Increase max total connection to 200
// Increase default max connection per route to 20
// Increase max connections for httpHost to 50
// configure timeout on the entire client
if (c.proxyAddress != null) {
}
// It's part of the http client spec to request the resource anonymously
// first and respond to the 401 with the Authorization header.
{
);
break;
break;
default:
throw new IllegalArgumentException();
}
}
/**
* This Closure can customize the httpClient and the returning object is injected into the Script Binding.
*/
//SETUP: groovyx.net.http
authCache = new BasicAuthCache();
authCache.put(new HttpHost(c.serviceAddress?.host, c.serviceAddress?.port, c.serviceAddress?.scheme), new BasicScheme());
}
RESTClient restClient = new InnerRESTClient(c.serviceAddress, c.defaultContentType, authCache, cookieStore)
if (null != c.defaultRequestHeaders) {
}
}
}
// Return with the decorated instance
return restClient
}
}
class InnerRESTClient extends RESTClient {
InnerRESTClient(Object defaultURI, Object defaultContentType, authCache, cookieStore) throws URISyntaxException {
super(defaultURI, defaultContentType)
this.cookieStore = cookieStore
}
// Add AuthCache to the execution context
//do Preemptive Auth
}
// Add AuthCache to the execution context
if (null != cookieStore) {
//do Preemptive Auth
}
}
}