List of usage examples for org.apache.commons.httpclient HttpClient getState
public HttpState getState()
From source file:org.exist.xquery.modules.httpclient.HTTPClientModule.java
private static void setConfigFromFile(final Path configFile, final HttpClient http) { if (LOG.isDebugEnabled()) { LOG.debug("http.configfile='" + configFile.toAbsolutePath() + "'"); }/*from www . j a v a2 s . com*/ final Properties props = new Properties(); try (final InputStream is = Files.newInputStream(configFile)) { if (LOG.isDebugEnabled()) { LOG.debug("Loading proxy settings from " + configFile.toAbsolutePath()); } props.load(is); // Hostname / port final String proxyHost = props.getProperty("proxy.host"); final int proxyPort = Integer.parseInt(props.getProperty("proxy.port", "8080")); // Username / password final String proxyUser = props.getProperty("proxy.user"); final String proxyPassword = props.getProperty("proxy.password"); // NTLM specifics String proxyDomain = props.getProperty("proxy.ntlm.domain"); if ("NONE".equalsIgnoreCase(proxyDomain)) { if (LOG.isDebugEnabled()) { LOG.debug("Forcing removal NTLM"); } proxyDomain = null; } // Set scope final AuthScope authScope = new AuthScope(proxyHost, proxyPort); // Setup right credentials final Credentials credentials; if (proxyDomain == null) { credentials = new UsernamePasswordCredentials(proxyUser, proxyPassword); } else { if (LOG.isDebugEnabled()) { LOG.debug("Using NTLM authentication for '" + proxyDomain + "'"); } credentials = new NTCredentials(proxyUser, proxyPassword, proxyHost, proxyDomain); } // Set details final HttpState state = http.getState(); http.getHostConfiguration().setProxy(proxyHost, proxyPort); state.setProxyCredentials(authScope, credentials); if (LOG.isDebugEnabled()) { LOG.info("Set proxy: " + proxyUser + "@" + proxyHost + ":" + proxyPort + (proxyDomain == null ? "" : " (NTLM:'" + proxyDomain + "')")); } } catch (final IOException ex) { LOG.error("Failed to read proxy configuration from '" + configFile + "'"); } }
From source file:org.exjello.mail.Exchange2003Connection.java
private void signOn() throws Exception { HttpClient client = getClient(); URL serverUrl = new URL(server); String host = serverUrl.getHost(); int port = serverUrl.getPort(); if (port == -1) port = serverUrl.getDefaultPort(); AuthScope authScope = new AuthScope(host, port); if (username.indexOf("\\") < 0) { client.getState().setCredentials(authScope, new UsernamePasswordCredentials(username, password)); } else {//www . j av a2 s . c o m // Try to connect with NTLM authentication String domainUser = username.substring(username.indexOf("\\") + 1, username.length()); String domain = username.substring(0, username.indexOf("\\")); client.getState().setCredentials(authScope, new NTCredentials(domainUser, password, host, domain)); } boolean authenticated = false; OptionsMethod authTest = new OptionsMethod(server + "/exchange"); try { authenticated = (client.executeMethod(authTest) < 400); } finally { try { InputStream stream = authTest.getResponseBodyAsStream(); byte[] buf = new byte[65536]; try { if (session.getDebug()) { PrintStream log = session.getDebugOut(); log.println("Response Body:"); int count; while ((count = stream.read(buf, 0, 65536)) != -1) { log.write(buf, 0, count); } log.flush(); log.println(); } else { while (stream.read(buf, 0, 65536) != -1) ; } } catch (Exception ignore) { } finally { try { stream.close(); } catch (Exception ignore2) { } } } finally { authTest.releaseConnection(); } } if (!authenticated) { PostMethod op = new PostMethod(server + SIGN_ON_URI); op.setRequestHeader("Content-Type", FORM_URLENCODED_CONTENT_TYPE); op.addParameter("destination", server + "/exchange"); op.addParameter("flags", "0"); op.addParameter("username", username); op.addParameter("password", password); try { int status = client.executeMethod(op); if (status >= 400) { throw new IllegalStateException("Sign-on failed: " + status); } } finally { try { InputStream stream = op.getResponseBodyAsStream(); byte[] buf = new byte[65536]; try { if (session.getDebug()) { PrintStream log = session.getDebugOut(); log.println("Response Body:"); int count; while ((count = stream.read(buf, 0, 65536)) != -1) { log.write(buf, 0, count); } log.flush(); log.println(); } else { while (stream.read(buf, 0, 65536) != -1) ; } } catch (Exception ignore) { } finally { try { stream.close(); } catch (Exception ignore2) { } } } finally { op.releaseConnection(); } } } findInbox(); }
From source file:org.exoplatform.calendar.service.impl.RemoteCalendarServiceImpl.java
@Override public boolean isValidRemoteUrl(String url, String type, String remoteUser, String remotePassword) throws IOException, UnsupportedOperationException { try {//from w w w . j av a 2 s. co m HttpClient client = new HttpClient(); HostConfiguration hostConfig = new HostConfiguration(); String host = new URL(url).getHost(); if (StringUtils.isEmpty(host)) host = url; hostConfig.setHost(host); client.setHostConfiguration(hostConfig); Credentials credentials = null; client.setHostConfiguration(hostConfig); if (!StringUtils.isEmpty(remoteUser)) { credentials = new UsernamePasswordCredentials(remoteUser, remotePassword); client.getState().setCredentials(new AuthScope(host, AuthScope.ANY_PORT, AuthScope.ANY_REALM), credentials); } if (CalendarService.ICALENDAR.equals(type)) { GetMethod get = new GetMethod(url); client.executeMethod(get); int statusCode = get.getStatusCode(); get.releaseConnection(); return (statusCode == HttpURLConnection.HTTP_OK); } else { if (CalendarService.CALDAV.equals(type)) { OptionsMethod options = new OptionsMethod(url); client.executeMethod(options); Header header = options.getResponseHeader("DAV"); options.releaseConnection(); if (header == null) { if (logger.isDebugEnabled()) { logger.debug("Cannot connect to remoter server or not support WebDav access"); } return false; } Boolean support = header.toString().contains("calendar-access"); options.releaseConnection(); if (!support) { if (logger.isDebugEnabled()) { logger.debug("Remote server does not support CalDav access"); } throw new UnsupportedOperationException("Remote server does not support CalDav access"); } return support; } return false; } } catch (MalformedURLException e) { if (logger.isDebugEnabled()) logger.debug(e.getMessage(), e); throw new IOException("URL is invalid. Maybe no legal protocol or URl could not be parsed"); } catch (IOException e) { if (logger.isDebugEnabled()) logger.debug(e.getMessage(), e); throw new IOException("Error occurs when connecting to remote server"); } }
From source file:org.exoplatform.calendar.service.impl.RemoteCalendarServiceImpl.java
/** * Get the HttpClient object to prepare for the connection with remote server * @param remoteCalendar holds information about remote server * @return HttpClient object/*from w w w .j a va 2 s. c o m*/ * @throws Exception */ public HttpClient getRemoteClient(RemoteCalendar remoteCalendar) throws Exception { HostConfiguration hostConfig = new HostConfiguration(); String host = new URL(remoteCalendar.getRemoteUrl()).getHost(); if (Utils.isEmpty(host)) host = remoteCalendar.getRemoteUrl(); hostConfig.setHost(host); HttpClient client = new HttpClient(); client.setHostConfiguration(hostConfig); client.getHttpConnectionManager().getParams().setConnectionTimeout(10000); client.getHttpConnectionManager().getParams().setSoTimeout(10000); // basic authentication if (!Utils.isEmpty(remoteCalendar.getRemoteUser())) { Credentials credentials = new UsernamePasswordCredentials(remoteCalendar.getRemoteUser(), remoteCalendar.getRemotePassword()); client.getState().setCredentials(new AuthScope(host, AuthScope.ANY_PORT, AuthScope.ANY_REALM), credentials); } return client; }
From source file:org.exoplatform.rest.client.openfire.Utils.java
static Response doGet(URL url) throws HttpException, IOException { HttpClient httpClient = new HttpClient(); httpClient.getState().setCredentials(new AuthScope(url.getHost(), url.getPort()), usernamePasswordCredentials); GetMethod get = new GetMethod(url.toString()); get.setDoAuthentication(true);/*from w w w . java 2s .c om*/ int status = httpClient.executeMethod(get); Document resDoc = null; try { if (get.getResponseBody().length > 0) { // if response has body resDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(get.getResponseBodyAsStream()); } } catch (Exception e) { throw new HttpException("XML parsing error : " + e); } finally { get.releaseConnection(); } return new Response(status, resDoc); }
From source file:org.exoplatform.rest.client.openfire.Utils.java
static Response doPost(URL url) throws HttpException, IOException { HttpClient httpClient = new HttpClient(); httpClient.getState().setCredentials(new AuthScope(url.getHost(), url.getPort()), usernamePasswordCredentials); PostMethod post = new PostMethod(url.toString()); post.setDoAuthentication(true);/*from w ww .j ava2s. c o m*/ int status = httpClient.executeMethod(post); Document resDoc = null; try { if (post.getResponseBody().length > 0) { // if response has body resDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(post.getResponseBodyAsStream()); } } catch (Exception e) { throw new HttpException("XML parsing error : " + e); } finally { post.releaseConnection(); } return new Response(status, resDoc); }
From source file:org.exoplatform.rest.client.openfire.Utils.java
static Response doGet(URL url, HashMap<String, String> params) throws HttpException, IOException { if (params == null || params.size() == 0) return doGet(url); HttpClient httpClient = new HttpClient(); httpClient.getState().setCredentials(new AuthScope(url.getHost(), url.getPort()), usernamePasswordCredentials); String _url = url.toString(); Set<String> key_set = params.keySet(); _url += (key_set.size() > 0) ? "?" : ""; for (String key : key_set) _url += (key + "=" + params.get(key)); GetMethod get = new GetMethod(_url); get.setDoAuthentication(true);/*from w ww .java 2 s .co m*/ int status = httpClient.executeMethod(get); Document resDoc = null; try { if (get.getResponseBody().length > 0) { // if response has body resDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(get.getResponseBodyAsStream()); } } catch (Exception e) { throw new HttpException("XML parsing error : " + e); } finally { get.releaseConnection(); } return new Response(status, resDoc); }
From source file:org.exoplatform.rest.client.openfire.Utils.java
static Response doPost(URL url, HashMap<String, String> params) throws HttpException, IOException { if (params == null || params.size() == 0) return doPost(url); HttpClient httpClient = new HttpClient(); httpClient.getState().setCredentials(new AuthScope(url.getHost(), url.getPort()), usernamePasswordCredentials); PostMethod post = new PostMethod(url.toString()); post.setDoAuthentication(true);//from www .j av a 2 s . co m Set<String> key_set = params.keySet(); for (String key : key_set) { post.setParameter(key, params.get(key)); } int status = httpClient.executeMethod(post); Document resDoc = null; try { if (post.getResponseBody().length > 0) { // if response has body resDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(post.getResponseBodyAsStream()); } } catch (Exception e) { throw new HttpException("XML parsing error : " + e); } finally { post.releaseConnection(); } return new Response(status, resDoc); }
From source file:org.exoplatform.tqa.template.SenderWebdav.java
public static void sendTemlate(String webdavLogin, String webdavPass, String webdavURL, String folderLocal, String nameParentFolder) { rootFolder = nameParentFolder;//from w ww . j ava2s . c om HttpClient client = new HttpClient(); try { webdavPass = EncryptService.decrypt(webdavPass); Credentials creds = new UsernamePasswordCredentials(webdavLogin, webdavPass); client.getState().setCredentials(AuthScope.ANY, creds); //delete parent folder // deleteFolder(client, webdavURL, rootFolder); //create parent folder createFolder(client, webdavURL, rootFolder); createFile(client, webdavURL + "/" + nameParentFolder, new File(folderLocal + "/" + "content")); SearchAllFiles(new File(folderLocal), client, webdavURL, nameParentFolder); } catch (Exception e) { e.printStackTrace(); LOGGER.error(e.getMessage()); } }
From source file:org.fao.geonet.lib.NetLib.java
/** Setup proxy for http client *//*w w w. j av a2 s . c om*/ public void setupProxy(SettingManager sm, HttpClient client) { boolean enabled = sm.getValueAsBool(ENABLED, false); String host = sm.getValue(HOST); String port = sm.getValue(PORT); String username = sm.getValue(USERNAME); String password = sm.getValue(PASSWORD); if (enabled) { if (!Lib.type.isInteger(port)) { Log.error(Geonet.GEONETWORK, "Proxy port is not an integer : " + port); } else { HostConfiguration config = client.getHostConfiguration(); if (config == null) config = new HostConfiguration(); config.setProxy(host, Integer.parseInt(port)); client.setHostConfiguration(config); if (username.trim().length() != 0) { Credentials cred = new UsernamePasswordCredentials(username, password); AuthScope scope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM); client.getState().setProxyCredentials(scope, cred); } List authPrefs = new ArrayList(2); authPrefs.add(AuthPolicy.DIGEST); authPrefs.add(AuthPolicy.BASIC); // This will exclude the NTLM authentication scheme client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); } } }