use of org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider in project geo-platform by geosdi.
the class GPServerProxy method doPost.
/**
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.log("@@@@@@@@@@@@@@@@@@@@@Called " + this.getClass().getSimpleName() + " {}#doPost.");
try {
if ((request.getParameter("targetURL") != null) && (request.getParameter("targetURL") != "")) {
CloseableHttpClient httpClient = HttpClients.custom().setConnectionReuseStrategy(new DefaultConnectionReuseStrategy()).setConnectionManager(createClientConnectionManager()).setDefaultCredentialsProvider(new BasicCredentialsProvider()).build();
String targetUrl = request.getParameter("targetURL");
URIBuilder uriBuilder = new URIBuilder(targetUrl);
Enumeration<String> parametersName = request.getParameterNames();
while (parametersName.hasMoreElements()) {
String requestParamName = parametersName.nextElement();
switch(requestParamName) {
case "targetURL":
case "v":
case "p":
break;
default:
uriBuilder.addParameter(requestParamName, request.getParameter(requestParamName));
}
}
URI uri = uriBuilder.build();
this.log("############################URI to call : " + uri.toString());
HttpPost httpPost = new HttpPost(uri);
if (request.getHeader("Content-Type") != null) {
httpPost.setHeader("Content-Type", request.getContentType());
}
if (((request.getParameter("v") != null) && (request.getParameter("v") != "")) && ((request.getParameter("p") != null) && (request.getParameter("p") != ""))) {
String userName = request.getParameter("v");
String password = request.getParameter("p");
String userpass = userName + ":" + password;
this.log("@@@@@@@@@@@@@@@@@Trying to inject basicAuth with parameter : " + userpass);
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
httpPost.setHeader(HttpHeaders.AUTHORIZATION, basicAuth);
}
int contentLength = request.getContentLength();
if (contentLength > 0) {
httpPost.setEntity(new StringEntity(new BufferedReader(new InputStreamReader(request.getInputStream(), UTF_8)).lines().collect(joining("\n"))));
}
CloseableHttpResponse httpClientResponse = httpClient.execute(httpPost);
this.log("###########################STATUS_CODE : " + httpClientResponse.getCode());
if (httpClientResponse.getCode() != 200) {
String exceptionMessage = IOUtils.toString(httpClientResponse.getEntity().getContent(), UTF_8);
this.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ExecutionError : " + exceptionMessage);
response.setStatus(500);
} else {
OutputStream ostream = response.getOutputStream();
copy(httpClientResponse.getEntity().getContent(), ostream);
this.log("#########################EXECUTE SUCCESS for POST.");
}
}
} catch (Exception ex) {
response.setStatus(500);
ex.printStackTrace();
}
}
use of org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider in project geo-platform by geosdi.
the class GPServerProxy method doGet.
/**
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.log("@@@@@@@@@@@@@@@@@@@@@Called " + this.getClass().getSimpleName() + "#doGet.");
try {
if ((request.getParameter("targetURL") != null) && (request.getParameter("targetURL") != "")) {
CloseableHttpClient httpClient = HttpClients.custom().setConnectionReuseStrategy(new DefaultConnectionReuseStrategy()).setConnectionManager(createClientConnectionManager()).setDefaultCredentialsProvider(new BasicCredentialsProvider()).build();
String targetUrl = request.getParameter("targetURL");
URIBuilder uriBuilder = new URIBuilder(targetUrl);
Enumeration<String> parametersName = request.getParameterNames();
while (parametersName.hasMoreElements()) {
String requestParamName = parametersName.nextElement();
switch(requestParamName) {
case "targetURL":
case "v":
case "p":
break;
default:
uriBuilder.addParameter(requestParamName, request.getParameter(requestParamName));
}
}
URI uri = uriBuilder.build();
this.log("############################URI to call : " + uri.toString());
HttpGet httpGet = new HttpGet(uri);
if (((request.getParameter("v") != null) && (request.getParameter("v") != "")) && ((request.getParameter("p") != null) && (request.getParameter("p") != ""))) {
String userName = request.getParameter("v");
String password = request.getParameter("p");
String userpass = userName + ":" + password;
this.log("@@@@@@@@@@@@@@@@@Trying to inject basicAuth with parameter : " + userpass);
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
httpGet.setHeader(HttpHeaders.AUTHORIZATION, basicAuth);
}
CloseableHttpResponse httpClientResponse = httpClient.execute(httpGet);
this.log("###########################STATUS_CODE : " + httpClientResponse.getCode());
if (httpClientResponse.getCode() != 200) {
String exceptionMessage = IOUtils.toString(httpClientResponse.getEntity().getContent(), UTF_8);
this.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ExecutionError : " + exceptionMessage);
response.setStatus(500);
} else {
OutputStream ostream = response.getOutputStream();
copy(httpClientResponse.getEntity().getContent(), ostream);
this.log("#########################EXECUTE SUCCESS for GET.");
}
}
} catch (Exception ex) {
response.setStatus(500);
ex.printStackTrace();
}
}
use of org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider in project wiremock by wiremock.
the class WireMockTestClient method httpClientWithPreemptiveAuth.
private static CloseableHttpClient httpClientWithPreemptiveAuth(HttpHost target, String username, String password) {
BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(target), new UsernamePasswordCredentials(username, password.toCharArray()));
return HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
}
use of org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider in project jahia by Jahia.
the class HttpClientService method initHttpClient.
private CloseableHttpClient initHttpClient(HttpClientBuilder builder, String protocol) {
String host = System.getProperty(protocol + ".proxyHost");
int port = Integer.getInteger(protocol + ".proxyPort", -1);
HttpHost proxy = new HttpHost(protocol, host, port);
builder.setProxy(proxy);
String key = host + ':' + port;
BasicCredentialsProvider credsProvider = null;
String user = System.getProperty(protocol + ".proxyUser");
if (StringUtils.isNotEmpty(user)) {
credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(proxy), new UsernamePasswordCredentials(user, System.getProperty(protocol + ".proxyPassword").toCharArray()));
builder.setDefaultCredentialsProvider(credsProvider);
}
if (logger.isInfoEnabled()) {
logger.info("Initialized HttpClient for {} protocol using proxy {} {} credentials", protocol.toUpperCase(), key, credsProvider != null ? "with" : "without");
}
CloseableHttpClient client = builder.build();
httpClients.put(key, client);
return client;
}
use of org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider in project mercury by yellow013.
the class ClientConfiguration method main.
public static final void main(final String[] args) throws Exception {
// Use custom message parser / writer to customize the way HTTP
// messages are parsed from and written out to the data stream.
final HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory = new DefaultHttpResponseParserFactory() {
@Override
public HttpMessageParser<ClassicHttpResponse> create(final Http1Config h1Config) {
final LineParser lineParser = new BasicLineParser() {
@Override
public Header parseHeader(final CharArrayBuffer buffer) {
try {
return super.parseHeader(buffer);
} catch (final ParseException ex) {
return new BasicHeader(buffer.toString(), null);
}
}
};
return new DefaultHttpResponseParser(lineParser, DefaultClassicHttpResponseFactory.INSTANCE, h1Config);
}
};
final HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory = new DefaultHttpRequestWriterFactory();
// Create HTTP/1.1 protocol configuration
final Http1Config h1Config = Http1Config.custom().setMaxHeaderCount(200).setMaxLineLength(2000).build();
// Create connection configuration
final CharCodingConfig connectionConfig = CharCodingConfig.custom().setMalformedInputAction(CodingErrorAction.IGNORE).setUnmappableInputAction(CodingErrorAction.IGNORE).setCharset(StandardCharsets.UTF_8).build();
// Use a custom connection factory to customize the process of
// initialization of outgoing HTTP connections. Beside standard connection
// configuration parameters HTTP connection factory can define message
// parser / writer routines to be employed by individual connections.
@SuppressWarnings("unused") final HttpConnectionFactory<ManagedHttpClientConnection> connFactory = new ManagedHttpClientConnectionFactory(h1Config, connectionConfig, requestWriterFactory, responseParserFactory);
// Client HTTP connection objects when fully initialized can be bound to
// an arbitrary network socket. The process of network socket initialization,
// its connection to a remote address and binding to a local one is controlled
// by a connection socket factory.
// SSL context for secure connections can be created either based on
// system or application specific properties.
final SSLContext sslcontext = SSLContexts.createSystemDefault();
// Create a registry of custom connection socket factories for supported
// protocol schemes.
final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.INSTANCE).register("https", new SSLConnectionSocketFactory(sslcontext)).build();
// Use custom DNS resolver to override the system DNS resolution.
final DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
@Override
public InetAddress[] resolve(final String host) throws UnknownHostException {
if (host.equalsIgnoreCase("myhost")) {
return new InetAddress[] { InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 }) };
} else {
return super.resolve(host);
}
}
};
// Create a connection manager with custom configuration.
final PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, PoolConcurrencyPolicy.STRICT, PoolReusePolicy.LIFO, TimeValue.ofMinutes(5), null, dnsResolver, null);
// Create socket configuration
final SocketConfig socketConfig = SocketConfig.custom().setTcpNoDelay(true).build();
// Configure the connection manager to use socket configuration either
// by default or for a specific host.
connManager.setDefaultSocketConfig(socketConfig);
// Validate connections after 1 sec of inactivity
connManager.setValidateAfterInactivity(TimeValue.ofSeconds(10));
// Configure total max or per route limits for persistent connections
// that can be kept in the pool or leased by the connection manager.
connManager.setMaxTotal(100);
connManager.setDefaultMaxPerRoute(10);
connManager.setMaxPerRoute(new HttpRoute(new HttpHost("somehost", 80)), 20);
// Use custom cookie store if necessary.
final CookieStore cookieStore = new BasicCookieStore();
// Use custom credentials provider if necessary.
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
// Create global request configuration
final RequestConfig defaultRequestConfig = RequestConfig.custom().setCookieSpec(StandardCookieSpec.STRICT).setExpectContinueEnabled(true).setTargetPreferredAuthSchemes(Arrays.asList(StandardAuthScheme.NTLM, StandardAuthScheme.DIGEST)).setProxyPreferredAuthSchemes(Collections.singletonList(StandardAuthScheme.BASIC)).build();
try (final CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(connManager).setDefaultCookieStore(cookieStore).setDefaultCredentialsProvider(credentialsProvider).setProxy(new HttpHost("myproxy", 8080)).setDefaultRequestConfig(defaultRequestConfig).build()) {
final HttpGet httpget = new HttpGet("http://httpbin.org/get");
// Request configuration can be overridden at the request level.
// They will take precedence over the one set at the client level.
final RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).setConnectionRequestTimeout(Timeout.ofSeconds(5)).setConnectTimeout(Timeout.ofSeconds(5)).setProxy(new HttpHost("myotherproxy", 8080)).build();
httpget.setConfig(requestConfig);
// Execution context can be customized locally.
final HttpClientContext context = HttpClientContext.create();
// Contextual attributes set the local context level will take
// precedence over those set at the client level.
context.setCookieStore(cookieStore);
context.setCredentialsProvider(credentialsProvider);
System.out.println("Executing request " + httpget.getMethod() + " " + httpget.getUri());
try (final CloseableHttpResponse response = httpclient.execute(httpget, context)) {
System.out.println("----------------------------------------");
System.out.println(response.getCode() + " " + response.getReasonPhrase());
System.out.println(EntityUtils.toString(response.getEntity()));
// Once the request has been executed the local context can
// be used to examine updated state and various objects affected
// by the request execution.
// Last executed request
context.getRequest();
// Execution route
context.getHttpRoute();
// Auth exchanges
context.getAuthExchanges();
// Cookie origin
context.getCookieOrigin();
// Cookie spec used
context.getCookieSpec();
// User security token
context.getUserToken();
}
}
}
Aggregations