You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2013/09/16 14:17:47 UTC
svn commit: r1523606 -
/chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/ApacheClientHttpInvoker.java
Author: fmui
Date: Mon Sep 16 12:17:47 2013
New Revision: 1523606
URL: http://svn.apache.org/r1523606
Log:
Android + Apache HTTP client: allow OpenCMIS cookie handling
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/ApacheClientHttpInvoker.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/ApacheClientHttpInvoker.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/ApacheClientHttpInvoker.java?rev=1523606&r1=1523605&r2=1523606&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/ApacheClientHttpInvoker.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/ApacheClientHttpInvoker.java Mon Sep 16 12:17:47 2013
@@ -23,6 +23,8 @@ import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;
+import java.util.Collections;
+import java.util.List;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSocket;
@@ -32,6 +34,8 @@ import org.apache.chemistry.opencmis.cli
import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
+import org.apache.http.Header;
+import org.apache.http.client.params.ClientPNames;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.conn.params.ConnManagerPNames;
import org.apache.http.conn.params.ConnPerRouteBean;
@@ -40,9 +44,15 @@ import org.apache.http.conn.scheme.Plain
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
+import org.apache.http.cookie.Cookie;
+import org.apache.http.cookie.CookieOrigin;
+import org.apache.http.cookie.CookieSpec;
+import org.apache.http.cookie.CookieSpecFactory;
+import org.apache.http.cookie.MalformedCookieException;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.ProxySelectorRoutePlanner;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.impl.cookie.CookieSpecBase;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
@@ -51,9 +61,12 @@ import org.apache.http.params.HttpParams
*/
public class ApacheClientHttpInvoker extends AbstractApacheClientHttpInvoker {
+ private static final String IGNORE_COOKIES = "ignoreCookies";
+
protected DefaultHttpClient createHttpClient(UrlBuilder url, BindingSession session) {
// set params
HttpParams params = createDefaultHttpParams(session);
+ params.setParameter(ClientPNames.COOKIE_POLICY, IGNORE_COOKIES);
// set max connection
String maxConnStr = System.getProperty("http.maxConnections", "5");
@@ -80,6 +93,7 @@ public class ApacheClientHttpInvoker ext
// set up client
DefaultHttpClient httpclient = new DefaultHttpClient(connManager, params);
httpclient.setRoutePlanner(routePlanner);
+ httpclient.getCookieSpecs().register(IGNORE_COOKIES, new IgnoreSpecFactory());
return httpclient;
}
@@ -152,4 +166,29 @@ public class ApacheClientHttpInvoker ext
}
};
}
+
+ /**
+ * A cookies spec factory that ignores cookies.
+ */
+ private static class IgnoreSpecFactory implements CookieSpecFactory {
+ public CookieSpec newInstance(final HttpParams params) {
+ return new CookieSpecBase() {
+ public int getVersion() {
+ return 0;
+ }
+
+ public List<Cookie> parse(Header header, CookieOrigin origin) throws MalformedCookieException {
+ return Collections.emptyList();
+ }
+
+ public List<Header> formatCookies(List<Cookie> cookies) {
+ return Collections.emptyList();
+ }
+
+ public Header getVersionHeader() {
+ return null;
+ }
+ };
+ }
+ }
}