List of usage examples for org.apache.commons.httpclient.auth AuthPolicy AUTH_SCHEME_PRIORITY
String AUTH_SCHEME_PRIORITY
To view the source code for org.apache.commons.httpclient.auth AuthPolicy AUTH_SCHEME_PRIORITY.
Click Source Link
From source file:org.mule.modules.constantcontact.RequestExecutor.java
public RequestExecutor(String apiKey, String username, String password) { String loginUsername = apiKey + "%" + username; httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(loginUsername, password)); httpclient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, Arrays.asList(AuthPolicy.BASIC)); }
From source file:org.sonatype.nexus.bundle.launcher.support.RequestUtils.java
/** * Execute HttpMethod with default Nexus admin credentials * * @param method/*w w w.j a v a2 s. co m*/ * @return * @throws HttpException * @throws IOException */ public static HttpMethod executeHTTPClientMethodAsAdmin(final HttpMethod method) throws HttpException, IOException { HttpClient httpClient = new HttpClient(); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000); httpClient.getHttpConnectionManager().getParams().setSoTimeout(5000); httpClient.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("admin", "admin123")); List<String> authPrefs = new ArrayList<String>(1); authPrefs.add(AuthPolicy.BASIC); httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); httpClient.getParams().setAuthenticationPreemptive(true); try { httpClient.executeMethod(method); method.getResponseBodyAsString(); // forced consumption of response I guess return method; } finally { method.releaseConnection(); // force socket cleanup HttpConnectionManager mgr = httpClient.getHttpConnectionManager(); if (mgr instanceof SimpleHttpConnectionManager) { ((SimpleHttpConnectionManager) mgr).shutdown(); } } }
From source file:org.sonatype.nexus.integrationtests.NexusRestClient.java
/** * Execute a HTTPClient method, optionally in the context of a test. * <p/>//from ww w. j a v a2s .c om * NOTE: Before being returned, {@link org.apache.commons.httpclient.HttpMethod#releaseConnection()} is called on the {@link org.apache.commons.httpclient.HttpMethod} instance, * therefore subsequent calls to get response body as string may return nulls. * * @param method the method to execute * @param useTestContext if true, execute this request in the context of a Test, false means ignore the testContext * settings * @return the HttpMethod instance passed into this method * @throws java.io.IOException */ public HttpMethod executeHTTPClientMethod(final HttpMethod method, final boolean useTestContext) throws IOException { HttpClient httpClient = new HttpClient(); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10000); httpClient.getHttpConnectionManager().getParams().setSoTimeout(10000); if (useTestContext) { if (testContext.isSecureTest()) { httpClient.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(testContext.getUsername(), testContext.getPassword())); List<String> authPrefs = new ArrayList<String>(1); authPrefs.add(AuthPolicy.BASIC); httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); httpClient.getParams().setAuthenticationPreemptive(true); } } try { httpClient.executeMethod(method); method.getResponseBodyAsString(); // forced consumption of response I guess return method; } finally { method.releaseConnection(); // force socket cleanup HttpConnectionManager mgr = httpClient.getHttpConnectionManager(); if (mgr instanceof SimpleHttpConnectionManager) { ((SimpleHttpConnectionManager) mgr).shutdown(); } } }
From source file:org.sonatype.nexus.proxy.storage.remote.commonshttpclient.HttpClientProxyUtil.java
public static void applyProxyToHttpClient(HttpClient httpClient, RemoteStorageContext ctx, Logger logger) { httpClient.setHttpConnectionManager(new CustomMultiThreadedHttpConnectionManager()); // getting the timeout from RemoteStorageContext. The value we get depends on per-repo and global settings. // The value will "cascade" from repo level to global level, see imple of it. int timeout = ctx.getRemoteConnectionSettings().getConnectionTimeout(); // getting the connection pool size, using a little trick to allow us "backdoor" to tune it using system // properties, but defaulting it to the same we had before (httpClient defaults) int connectionPoolSize = SystemPropertiesHelper.getInteger(CONNECTION_POOL_SIZE_KEY, MultiThreadedHttpConnectionManager.DEFAULT_MAX_TOTAL_CONNECTIONS); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(timeout); httpClient.getHttpConnectionManager().getParams().setSoTimeout(timeout); // httpClient.getHttpConnectionManager().getParams().setTcpNoDelay( true ); httpClient.getHttpConnectionManager().getParams().setMaxTotalConnections(connectionPoolSize); // NOTE: connPool is _per_ repo, hence all of those will connect to same host (unless mirrors are used) // so, we are violating intentionally the RFC and we let the whole pool size to chase same host httpClient.getHttpConnectionManager().getParams() .setMaxConnectionsPerHost(HostConfiguration.ANY_HOST_CONFIGURATION, connectionPoolSize); // Setting auth if needed HostConfiguration httpConfiguration = httpClient.getHostConfiguration(); // BASIC and DIGEST auth only RemoteAuthenticationSettings ras = ctx.getRemoteAuthenticationSettings(); boolean isSimpleAuthUsed = false; boolean isNtlmUsed = false; if (ras != null) { List<String> authPrefs = new ArrayList<String>(2); authPrefs.add(AuthPolicy.DIGEST); authPrefs.add(AuthPolicy.BASIC); if (ras instanceof ClientSSLRemoteAuthenticationSettings) { // ClientSSLRemoteAuthenticationSettings cras = (ClientSSLRemoteAuthenticationSettings) ras; // TODO - implement this } else if (ras instanceof NtlmRemoteAuthenticationSettings) { NtlmRemoteAuthenticationSettings nras = (NtlmRemoteAuthenticationSettings) ras; // Using NTLM auth, adding it as first in policies authPrefs.add(0, AuthPolicy.NTLM); logger(logger).info("... authentication setup for NTLM domain '{}'", nras.getNtlmDomain()); httpConfiguration.setHost(nras.getNtlmHost()); httpClient.getState().setCredentials(AuthScope.ANY, new NTCredentials(nras.getUsername(), nras.getPassword(), nras.getNtlmHost(), nras.getNtlmDomain())); isNtlmUsed = true;/*from w ww. ja va 2 s . c o m*/ } else if (ras instanceof UsernamePasswordRemoteAuthenticationSettings) { UsernamePasswordRemoteAuthenticationSettings uras = (UsernamePasswordRemoteAuthenticationSettings) ras; // Using Username/Pwd auth, will not add NTLM logger(logger).info("... authentication setup for remote storage with username '{}'", uras.getUsername()); httpClient.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(uras.getUsername(), uras.getPassword())); isSimpleAuthUsed = true; } httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); } RemoteProxySettings rps = ctx.getRemoteProxySettings(); boolean isProxyUsed = false; if (rps.isEnabled()) { isProxyUsed = true; logger(logger).info("... proxy setup with host '{}'", rps.getHostname()); httpConfiguration.setProxy(rps.getHostname(), rps.getPort()); // check if we have non-proxy hosts if (rps.getNonProxyHosts() != null && !rps.getNonProxyHosts().isEmpty()) { Set<Pattern> nonProxyHostPatterns = new HashSet<Pattern>(rps.getNonProxyHosts().size()); for (String nonProxyHostRegex : rps.getNonProxyHosts()) { try { nonProxyHostPatterns.add(Pattern.compile(nonProxyHostRegex, Pattern.CASE_INSENSITIVE)); } catch (PatternSyntaxException e) { logger(logger).warn("Invalid non proxy host regex: {}", nonProxyHostRegex, e); } } httpConfiguration.getParams().setParameter( CustomMultiThreadedHttpConnectionManager.NON_PROXY_HOSTS_PATTERNS_KEY, nonProxyHostPatterns); } if (rps.getProxyAuthentication() != null) { ras = rps.getProxyAuthentication(); List<String> authPrefs = new ArrayList<String>(2); authPrefs.add(AuthPolicy.DIGEST); authPrefs.add(AuthPolicy.BASIC); if (ras instanceof ClientSSLRemoteAuthenticationSettings) { // ClientSSLRemoteAuthenticationSettings cras = (ClientSSLRemoteAuthenticationSettings) ras; // TODO - implement this } else if (ras instanceof NtlmRemoteAuthenticationSettings) { NtlmRemoteAuthenticationSettings nras = (NtlmRemoteAuthenticationSettings) ras; // Using NTLM auth, adding it as first in policies authPrefs.add(0, AuthPolicy.NTLM); if (ctx.getRemoteAuthenticationSettings() != null && (ctx .getRemoteAuthenticationSettings() instanceof NtlmRemoteAuthenticationSettings)) { logger(logger).warn("... Apache Commons HttpClient 3.x is unable to use NTLM auth scheme\n" + " for BOTH server side and proxy side authentication!\n" + " You MUST reconfigure server side auth and use BASIC/DIGEST scheme\n" + " if you have to use NTLM proxy, otherwise it will not work!\n" + " *** SERVER SIDE AUTH OVERRIDDEN"); } logger(logger).info("... proxy authentication setup for NTLM domain '{}'", nras.getNtlmDomain()); httpConfiguration.setHost(nras.getNtlmHost()); httpClient.getState().setProxyCredentials(AuthScope.ANY, new NTCredentials(nras.getUsername(), nras.getPassword(), nras.getNtlmHost(), nras.getNtlmDomain())); isNtlmUsed = true; } else if (ras instanceof UsernamePasswordRemoteAuthenticationSettings) { UsernamePasswordRemoteAuthenticationSettings uras = (UsernamePasswordRemoteAuthenticationSettings) ras; // Using Username/Pwd auth, will not add NTLM logger(logger).info("... proxy authentication setup for remote storage with username '{}'", uras.getUsername()); httpClient.getState().setProxyCredentials(AuthScope.ANY, new UsernamePasswordCredentials(uras.getUsername(), uras.getPassword())); } httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); } } // set preemptive only for simplest scenario: // no proxy and BASIC auth is used if (isSimpleAuthUsed && !isProxyUsed) { logger(logger) .info("... simple scenario: simple authentication used with no proxy in between target and us," + " will use preemptive authentication"); // we have authentication, let's do it preemptive httpClient.getParams().setAuthenticationPreemptive(true); } // mark the fact that NTLM is in use // but ONLY IF IT CHANGED! // Otherwise, doing it always, actually marks the ctx itself as "changed", causing an avalanche of other // consequences, like resetting all the HTTP clients of all remote storages (coz they think there is a change // in proxy or remote connection settings, etc). final Boolean isNtlmUsedOldValue = (Boolean) ctx.getContextObject(NTLM_IS_IN_USE_KEY); if (isNtlmUsedOldValue == null || isNtlmUsedOldValue.booleanValue() != isNtlmUsed) { if (isNtlmUsed) { ctx.putContextObject(NTLM_IS_IN_USE_KEY, Boolean.TRUE); } else { ctx.putContextObject(NTLM_IS_IN_USE_KEY, Boolean.FALSE); } } }
From source file:org.sonatype.nexus.restlight.common.AbstractRESTLightClient.java
protected void connect() throws RESTLightClientException { client = new HttpClient(); UsernamePasswordCredentials creds = new UsernamePasswordCredentials(user, password); List<String> policies = new ArrayList<String>(); policies.add(NxBasicScheme.POLICY_NAME); policies.add("BASIC"); AuthPolicy.registerAuthScheme(NxBasicScheme.POLICY_NAME, NxBasicScheme.class); AuthPolicy.registerAuthScheme("BASIC", BasicScheme.class); client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, policies); client.getState().setCredentials(AuthScope.ANY, creds); loadVocabulary();// w w w . j av a 2 s. c om }
From source file:org.sonatype.nexus.restlight.testharness.AbstractRESTTest.java
protected void setupAuthentication(final HttpClient client, final String user, final String password) { UsernamePasswordCredentials creds = new UsernamePasswordCredentials(user, password); List<String> policies = new ArrayList<String>(); policies.add(NxBasicScheme.POLICY_NAME); AuthPolicy.registerAuthScheme(NxBasicScheme.POLICY_NAME, NxBasicScheme.class); client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, policies); client.getState().setCredentials(AuthScope.ANY, creds); }
From source file:org.tinygroup.httpvisit.impl.HttpVisitorImpl.java
public void setAlternateAuth(String host, int port, String username, String password, List<String> schemaList) { httpState.setCredentials(new AuthScope("www.verisign.com", 443), new UsernamePasswordCredentials("username", "password")); authEnabled = true;/*from w w w . j a v a2 s . co m*/ client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, schemaList); }
From source file:org.tinygroup.httpvisit.impl.HttpVisitorImpl.java
public void init() { client = new HttpClient(new MultiThreadedHttpConnectionManager()); client.getHttpConnectionManager().getParams().setConnectionTimeout(timeout); client.getParams().setCookiePolicy(CookiePolicy.RFC_2109); client.setState(httpState);/*from w ww . j a v a 2 s. c o m*/ if (authPrefs != null) { client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); } if (proxyHost != null) { client.getHostConfiguration().setProxy(proxyHost, proxyPort); if (proxyUserPassword != null) { httpState.setProxyCredentials(new AuthScope(proxyHost, proxyPort), proxyUserPassword); } } }
From source file:org.wso2.carbon.mashup.javascript.hostobjects.pooledhttpclient.PooledHttpClientHostObject.java
/** * Used by jsFunction_executeMethod()./*from ww w . j a va 2 s . c om*/ * * @param httpClient * @param authSchemes */ private static void setAuthSchemes(PooledHttpClientHostObject httpClient, List<String> authSchemes) { // authSchemePriority has been set for (int i = 0; i < httpClient.authSchemePriority.getLength(); i++) { if (httpClient.authSchemePriority.get(i, httpClient.authSchemePriority) instanceof String) { String currentScheme = (String) httpClient.authSchemePriority.get(i, httpClient.authSchemePriority); if (currentScheme.equals("NTLM")) { authSchemes.add("NTLM"); } else if (currentScheme.equals("BASIC")) { authSchemes.add("BASIC"); } else if (currentScheme.equals("DIGEST")) { authSchemes.add("DIGEST"); } else { throw new RuntimeException("Unsupported Authentication Scheme"); } } else { throw new RuntimeException("Authentication Schemes should be Strings values"); } } // sets the AuthScheme priority httpClient.httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authSchemes); }
From source file:org.ybygjy.httpclient.AlternateAuthenticationExample.java
public static void main(String[] args) throws Exception { HttpClient client = new HttpClient(); client.getState().setCredentials(new AuthScope("myhost", 80, "myrealm"), new UsernamePasswordCredentials("username", "password")); // Suppose the site supports several authetication schemes: NTLM and Basic // Basic authetication is considered inherently insecure. Hence, NTLM authentication // is used per default // This is to make HttpClient pick the Basic authentication scheme over NTLM & Digest List authPrefs = new ArrayList(3); authPrefs.add(AuthPolicy.BASIC);//w ww. ja v a 2 s.c o m authPrefs.add(AuthPolicy.NTLM); authPrefs.add(AuthPolicy.DIGEST); client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); GetMethod httpget = new GetMethod("http://localhost:8080/index.html"); try { int status = client.executeMethod(httpget); // print the status and response System.out.println(httpget.getStatusLine()); System.out.println(httpget.getResponseBodyAsString()); } finally { // release any connection resources used by the method httpget.releaseConnection(); } }