diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..7babea01
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,25 @@
+# Created by .ignore support plugin (hsz.mobi)
+### Java template
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
diff --git a/INSTALL b/INSTALL
index 1ca3534e..533c419b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -12,8 +12,7 @@ For general information about the package please see the README document.
Requirements:
- - Java 1.5 JVM (or higher)
-
+ - Java version between 1.5 and 1.7 (1.8 is not supported)
- Ant (optional: needed for building the package and running the tests)
- Maven (optional: alternative to Ant)
- JUnit (optional: needed for running the tests)
diff --git a/lib/httpclient-4.2.2.jar b/lib/httpclient-4.2.2.jar
deleted file mode 100644
index 5f768c46..00000000
Binary files a/lib/httpclient-4.2.2.jar and /dev/null differ
diff --git a/lib/httpclient-4.5.1.jar b/lib/httpclient-4.5.1.jar
new file mode 100644
index 00000000..b9c0c1c2
Binary files /dev/null and b/lib/httpclient-4.5.1.jar differ
diff --git a/lib/httpcore-4.2.2.jar b/lib/httpcore-4.2.2.jar
deleted file mode 100644
index a64cd2f5..00000000
Binary files a/lib/httpcore-4.2.2.jar and /dev/null differ
diff --git a/lib/httpcore-4.4.9.jar b/lib/httpcore-4.4.9.jar
new file mode 100644
index 00000000..cddba28f
Binary files /dev/null and b/lib/httpcore-4.4.9.jar differ
diff --git a/pom.xml b/pom.xml
index 4f5754e4..ceb5ecf8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
org.openid4java
openid4java
- 1.0.0
+ 1.0.1
jar
OpenID4Java
@@ -478,7 +478,7 @@
org.apache.httpcomponents
httpclient
- 4.1
+ 4.5.1
org.springframework
diff --git a/src/org/openid4java/util/HttpClientFactory.java b/src/org/openid4java/util/HttpClientFactory.java
index 5f6a907e..dfe849e2 100644
--- a/src/org/openid4java/util/HttpClientFactory.java
+++ b/src/org/openid4java/util/HttpClientFactory.java
@@ -9,21 +9,14 @@
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
-import org.apache.http.client.params.AllClientPNames;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.params.ConnRoutePNames;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.client.config.RequestConfig;
import org.apache.http.conn.ssl.X509HostnameVerifier;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.SingleClientConnManager;
-import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
import javax.net.ssl.SSLContext;
@@ -33,9 +26,9 @@
*
* @author Kevin
*/
-public class HttpClientFactory
-{
- private HttpClientFactory() {}
+public class HttpClientFactory {
+ private HttpClientFactory() {
+ }
/**
* proxy properties for HTTPClient calls
@@ -44,13 +37,11 @@ private HttpClientFactory() {}
private static boolean multiThreadedHttpClient = true;
- public static ProxyProperties getProxyProperties()
- {
+ public static ProxyProperties getProxyProperties() {
return proxyProperties;
}
- public static void setProxyProperties(ProxyProperties proxyProperties)
- {
+ public static void setProxyProperties(ProxyProperties proxyProperties) {
HttpClientFactory.proxyProperties = proxyProperties;
}
@@ -63,90 +54,58 @@ public static boolean isMultiThreadedHttpClient() {
*
* @param multiThreadedHttpClient if true, MultiThreadedHttpConnectionManager's are constructed;
* if false - SimpleHttpConnectionManager's.
- *
*/
public static void setMultiThreadedHttpClient(boolean multiThreadedHttpClient) {
HttpClientFactory.multiThreadedHttpClient = multiThreadedHttpClient;
}
public static HttpClient getInstance(int maxRedirects,
- Boolean allowCircularRedirects,
- int connTimeout, int socketTimeout,
- String cookiePolicy)
- {
- return getInstance(maxRedirects, allowCircularRedirects, connTimeout, socketTimeout, cookiePolicy, null, null);
+ Boolean allowCircularRedirects,
+ int connTimeout, int socketTimeout,
+ String cookiePolicy) {
+ return getInstance(maxRedirects, allowCircularRedirects, connTimeout, socketTimeout, cookiePolicy, null, null);
}
-
+
public static HttpClient getInstance(int maxRedirects,
Boolean allowCircularRedirects,
int connTimeout, int socketTimeout,
String cookiePolicy, SSLContext sslContext,
- X509HostnameVerifier hostnameVerifier)
- {
- HttpParams httpParams = new BasicHttpParams();
+ X509HostnameVerifier hostnameVerifier) {
- SchemeRegistry registry = new SchemeRegistry();
+ HttpClientBuilder httpClientBuilder = HttpClients.custom();
+ RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
- registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
- SSLSocketFactory sslSocketFactory;
- if (null == sslContext)
- {
- sslSocketFactory = SSLSocketFactory.getSocketFactory();
- }
- else
- {
- sslSocketFactory = new SSLSocketFactory(sslContext);
- }
- if (null != hostnameVerifier)
- {
- sslSocketFactory.setHostnameVerifier(hostnameVerifier);
- }
- registry.register(new Scheme("https", 443, sslSocketFactory));
-
- ClientConnectionManager connManager;
- if (multiThreadedHttpClient)
- connManager = new ThreadSafeClientConnManager(registry);
- else
- connManager = new SingleClientConnManager(registry);
-
- DefaultHttpClient client = new DefaultHttpClient(connManager, httpParams);
-
- client.getParams().setParameter(AllClientPNames.MAX_REDIRECTS,
- new Integer(maxRedirects));
- client.getParams().setParameter(AllClientPNames.ALLOW_CIRCULAR_REDIRECTS,
- allowCircularRedirects);
- client.getParams().setParameter(AllClientPNames.SO_TIMEOUT,
- new Integer(socketTimeout));
- client.getParams().setParameter(AllClientPNames.CONNECTION_TIMEOUT,
- new Integer(connTimeout));
-
- if (cookiePolicy == null)
- {
- client.setCookieStore(null);
- }
- else
- {
- client.getParams().setParameter(AllClientPNames.COOKIE_POLICY,
- cookiePolicy);
- }
-
+ requestConfigBuilder.setCircularRedirectsAllowed(allowCircularRedirects)
+ .setMaxRedirects(maxRedirects)
+ .setConnectTimeout(connTimeout)
+ .setSocketTimeout(socketTimeout);
+ if (cookiePolicy != null)
+ requestConfigBuilder.setCookieSpec(cookiePolicy);
+
+ if (sslContext != null)
+ httpClientBuilder.setSSLContext(sslContext);
- if (proxyProperties != null)
- {
- HttpHost proxy = new HttpHost(
- proxyProperties.getProxyHostName(),
- proxyProperties.getProxyPort());
+ if(hostnameVerifier != null)
+ httpClientBuilder.setHostnameVerifier(hostnameVerifier);
- client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+ if (proxyProperties != null) {
- //now set headers for auth
- AuthScope authScope = new AuthScope(AuthScope.ANY_HOST,
- AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME);
- Credentials credentials = proxyProperties.getCredentials();
- client.getCredentialsProvider().setCredentials(authScope, credentials);
+ requestConfigBuilder.setProxy(new HttpHost(
+ proxyProperties.getProxyHostName(),
+ proxyProperties.getProxyPort()));
+
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(
+ new AuthScope(AuthScope.ANY_HOST,
+ AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME),
+ new UsernamePasswordCredentials(proxyProperties.getUserName(), proxyProperties.getPassword()));
+
+ httpClientBuilder.setDefaultCredentialsProvider(credsProvider);
}
- return client;
+ httpClientBuilder.setDefaultRequestConfig(requestConfigBuilder.build());
+
+ return httpClientBuilder.build();
}
}