use of org.apache.http.auth.AuthSchemeProvider in project calcite-avatica by apache.
the class AvaticaCommonsHttpClientImpl method setUsernamePassword.
@Override
public void setUsernamePassword(AuthenticationType authType, String username, String password) {
this.credentials = new UsernamePasswordCredentials(Objects.requireNonNull(username), Objects.requireNonNull(password));
this.credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, credentials);
RegistryBuilder<AuthSchemeProvider> authRegistryBuilder = RegistryBuilder.create();
switch(authType) {
case BASIC:
authRegistryBuilder.register(AuthSchemes.BASIC, new BasicSchemeFactory());
break;
case DIGEST:
authRegistryBuilder.register(AuthSchemes.DIGEST, new DigestSchemeFactory());
break;
default:
throw new IllegalArgumentException("Unsupported authentiation type: " + authType);
}
this.authRegistry = authRegistryBuilder.build();
}
use of org.apache.http.auth.AuthSchemeProvider in project ats-framework by Axway.
the class HttpClient method setupAuthentication.
/**
* Set up authentication for HTTP Basic/HTTP Digest/SPNEGO.
*
* @param httpClientBuilder The client builder
* @return The context
* @throws HttpException
*/
private void setupAuthentication(HttpClientBuilder httpClientBuilder) throws HttpException {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(username, password));
httpClientBuilder.setDefaultCredentialsProvider(credsProvider);
if (authType == AuthType.always) {
AuthCache authCache = new BasicAuthCache();
// Generate BASIC scheme object and add it to the local auth cache
BasicScheme basicAuth = new BasicScheme();
HttpHost target = new HttpHost(host, port, isOverSsl ? "https" : "http");
authCache.put(target, basicAuth);
// Add AuthCache to the execution context
httpContext.setAuthCache(authCache);
} else {
if (!StringUtils.isNullOrEmpty(kerberosServicePrincipalName)) {
GssClient gssClient = new GssClient(username, password, kerberosClientKeytab, krb5ConfFile);
AuthSchemeProvider nsf = new SPNegoSchemeFactory(gssClient, kerberosServicePrincipalName, kerberosServicePrincipalType);
final Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create().register(AuthSchemes.SPNEGO, nsf).build();
httpClientBuilder.setDefaultAuthSchemeRegistry(authSchemeRegistry);
}
}
}
use of org.apache.http.auth.AuthSchemeProvider in project fess-crawler by codelibs.
the class HcHttpClient method init.
@Override
public synchronized void init() {
if (httpClient != null) {
return;
}
if (logger.isDebugEnabled()) {
logger.debug("Initializing " + HcHttpClient.class.getName());
}
super.init();
// robots.txt parser
final Boolean robotsTxtEnabled = getInitParameter(ROBOTS_TXT_ENABLED_PROPERTY, Boolean.TRUE, Boolean.class);
if (robotsTxtHelper != null) {
robotsTxtHelper.setEnabled(robotsTxtEnabled.booleanValue());
}
// httpclient
final org.apache.http.client.config.RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
final HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
final Integer connectionTimeoutParam = getInitParameter(CONNECTION_TIMEOUT_PROPERTY, connectionTimeout, Integer.class);
if (connectionTimeoutParam != null) {
requestConfigBuilder.setConnectTimeout(connectionTimeoutParam);
}
final Integer soTimeoutParam = getInitParameter(SO_TIMEOUT_PROPERTY, soTimeout, Integer.class);
if (soTimeoutParam != null) {
requestConfigBuilder.setSocketTimeout(soTimeoutParam);
}
// AuthSchemeFactory
final RegistryBuilder<AuthSchemeProvider> authSchemeProviderBuilder = RegistryBuilder.create();
@SuppressWarnings("unchecked") final Map<String, AuthSchemeProvider> factoryMap = getInitParameter(AUTH_SCHEME_PROVIDERS_PROPERTY, authSchemeProviderMap, Map.class);
if (factoryMap != null) {
for (final Map.Entry<String, AuthSchemeProvider> entry : factoryMap.entrySet()) {
authSchemeProviderBuilder.register(entry.getKey(), entry.getValue());
}
}
// user agent
userAgent = getInitParameter(USER_AGENT_PROPERTY, userAgent, String.class);
if (StringUtil.isNotBlank(userAgent)) {
httpClientBuilder.setUserAgent(userAgent);
}
final HttpRoutePlanner planner = buildRoutePlanner();
if (planner != null) {
httpClientBuilder.setRoutePlanner(planner);
}
// Authentication
final Authentication[] siteCredentialList = getInitParameter(BASIC_AUTHENTICATIONS_PROPERTY, new Authentication[0], Authentication[].class);
final List<Pair<FormScheme, Credentials>> formSchemeList = new ArrayList<>();
for (final Authentication authentication : siteCredentialList) {
final AuthScheme authScheme = authentication.getAuthScheme();
if (authScheme instanceof FormScheme) {
formSchemeList.add(new Pair<>((FormScheme) authScheme, authentication.getCredentials()));
} else {
final AuthScope authScope = authentication.getAuthScope();
credentialsProvider.setCredentials(authScope, authentication.getCredentials());
if (authScope.getHost() != null && authScheme != null) {
final HttpHost targetHost = new HttpHost(authScope.getHost(), authScope.getPort());
authCache.put(targetHost, authScheme);
}
}
}
httpClientContext.setAuthCache(authCache);
httpClientContext.setCredentialsProvider(credentialsProvider);
// Request Header
final RequestHeader[] requestHeaders = getInitParameter(REQUERT_HEADERS_PROPERTY, new RequestHeader[0], RequestHeader[].class);
for (final RequestHeader requestHeader : requestHeaders) {
if (requestHeader.isValid()) {
requestHeaderList.add(new BasicHeader(requestHeader.getName(), requestHeader.getValue()));
}
}
// do not redirect
requestConfigBuilder.setRedirectsEnabled(getInitParameter(REDIRECTS_ENABLED, redirectsEnabled, Boolean.class));
// cookie
if (cookieSpec != null) {
requestConfigBuilder.setCookieSpec(cookieSpec);
}
// cookie store
httpClientBuilder.setDefaultCookieStore(cookieStore);
if (cookieStore != null) {
final Cookie[] cookies = getInitParameter(COOKIES_PROPERTY, new Cookie[0], Cookie[].class);
for (final Cookie cookie : cookies) {
cookieStore.addCookie(cookie);
}
}
// cookie registry
final Lookup<CookieSpecProvider> cookieSpecRegistry = buildCookieSpecRegistry();
if (cookieSpecRegistry != null) {
httpClientBuilder.setDefaultCookieSpecRegistry(cookieSpecRegistry);
}
// SSL
final LayeredConnectionSocketFactory sslSocketFactory = buildSSLSocketFactory();
if (sslSocketFactory != null) {
httpClientBuilder.setSSLSocketFactory(sslSocketFactory);
}
connectionMonitorTask = TimeoutManager.getInstance().addTimeoutTarget(new HcConnectionMonitorTarget(clientConnectionManager, idleConnectionTimeout), connectionCheckInterval, true);
final CloseableHttpClient closeableHttpClient = httpClientBuilder.setDnsResolver(dnsResolver).setConnectionManager(clientConnectionManager).setDefaultRequestConfig(requestConfigBuilder.build()).build();
if (!httpClientPropertyMap.isEmpty()) {
final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(closeableHttpClient.getClass());
for (final Map.Entry<String, Object> entry : httpClientPropertyMap.entrySet()) {
final String propertyName = entry.getKey();
if (beanDesc.hasPropertyDesc(propertyName)) {
final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(propertyName);
propertyDesc.setValue(closeableHttpClient, entry.getValue());
} else {
logger.warn("DefaultHttpClient does not have " + propertyName + ".");
}
}
}
formSchemeList.forEach(p -> {
final FormScheme scheme = p.getFirst();
final Credentials credentials = p.getSecond();
scheme.authenticate(credentials, (request, consumer) -> {
// request header
for (final Header header : requestHeaderList) {
request.addHeader(header);
}
HttpEntity httpEntity = null;
try {
final HttpResponse response = closeableHttpClient.execute(request, new BasicHttpContext(httpClientContext));
httpEntity = response.getEntity();
consumer.accept(response, httpEntity);
} catch (final Exception e) {
request.abort();
logger.warn("Failed to authenticate on " + scheme, e);
} finally {
EntityUtils.consumeQuietly(httpEntity);
}
});
});
httpClient = closeableHttpClient;
}
use of org.apache.http.auth.AuthSchemeProvider in project fess-crawler by codelibs.
the class ApiExtractor method init.
@PostConstruct
public void init() {
if (logger.isDebugEnabled()) {
logger.debug("Initializing " + ApiExtractor.class.getName());
}
// httpclient
final org.apache.http.client.config.RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
final HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
final Integer connectionTimeoutParam = connectionTimeout;
if (connectionTimeoutParam != null) {
requestConfigBuilder.setConnectTimeout(connectionTimeoutParam);
}
final Integer soTimeoutParam = soTimeout;
if (soTimeoutParam != null) {
requestConfigBuilder.setSocketTimeout(soTimeoutParam);
}
// AuthSchemeFactory
final RegistryBuilder<AuthSchemeProvider> authSchemeProviderBuilder = RegistryBuilder.create();
// @SuppressWarnings("unchecked")
final Map<String, AuthSchemeProvider> factoryMap = authSchemeProviderMap;
if (factoryMap != null) {
for (final Map.Entry<String, AuthSchemeProvider> entry : factoryMap.entrySet()) {
authSchemeProviderBuilder.register(entry.getKey(), entry.getValue());
}
}
// user agent
if (StringUtil.isNotBlank(userAgent)) {
httpClientBuilder.setUserAgent(userAgent);
}
// Authentication
final Authentication[] siteCredentialList = new Authentication[0];
for (final Authentication authentication : siteCredentialList) {
final AuthScope authScope = authentication.getAuthScope();
credentialsProvider.setCredentials(authScope, authentication.getCredentials());
final AuthScheme authScheme = authentication.getAuthScheme();
if (authScope.getHost() != null && authScheme != null) {
final HttpHost targetHost = new HttpHost(authScope.getHost(), authScope.getPort());
authCache.put(targetHost, authScheme);
}
}
httpClientContext.setAuthCache(authCache);
httpClientContext.setCredentialsProvider(credentialsProvider);
// Request Header
final RequestHeader[] requestHeaders = { new RequestHeader("enctype", "multipart/form-data") };
for (final RequestHeader requestHeader : requestHeaders) {
if (requestHeader.isValid()) {
requestHeaderList.add(new BasicHeader(requestHeader.getName(), requestHeader.getValue()));
}
}
final CloseableHttpClient closeableHttpClient = httpClientBuilder.setDefaultRequestConfig(requestConfigBuilder.build()).build();
if (!httpClientPropertyMap.isEmpty()) {
final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(closeableHttpClient.getClass());
for (final Map.Entry<String, Object> entry : httpClientPropertyMap.entrySet()) {
final String propertyName = entry.getKey();
if (beanDesc.hasPropertyDesc(propertyName)) {
final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(propertyName);
propertyDesc.setValue(closeableHttpClient, entry.getValue());
} else {
logger.warn("DefaultHttpClient does not have " + propertyName + ".");
}
}
}
httpClient = closeableHttpClient;
}
use of org.apache.http.auth.AuthSchemeProvider in project zeppelin by apache.
the class YarnClient method buildSpengoHttpClient.
// Kerberos authentication for simulated curling
private static HttpClient buildSpengoHttpClient() {
HttpClientBuilder builder = HttpClientBuilder.create();
Lookup<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create().register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory(true)).build();
builder.setDefaultAuthSchemeRegistry(authSchemeRegistry);
BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(new AuthScope(null, -1, null), new Credentials() {
@Override
public Principal getUserPrincipal() {
return null;
}
@Override
public String getPassword() {
return null;
}
});
builder.setDefaultCredentialsProvider(credentialsProvider);
// Avoid output WARN: Cookie rejected
RequestConfig globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
builder.setDefaultRequestConfig(globalConfig);
CloseableHttpClient httpClient = builder.build();
return httpClient;
}
Aggregations