Author: jleroux
Date: Sun Apr 10 11:42:38 2016
New Revision: 1738421

URL: http://svn.apache.org/viewvc?rev=1738421&view=rev
Log:
"Applied fix from trunk for revision: " 


Removed:
    ofbiz/branches/release15.12/specialpurpose/passport/lib/
Modified:
    ofbiz/branches/release15.12/   (props changed)
    
ofbiz/branches/release15.12/framework/base/src/org/ofbiz/base/util/UtilHttp.java
    ofbiz/branches/release15.12/specialpurpose/passport/build.xml
    
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/GitHubEvents.java
    
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/LinkedInEvents.java
    
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/GitHubAuthenticator.java
    
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/LinkedInAuthenticator.java
    
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/util/PassportUtil.java
    
ofbiz/branches/release15.12/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java

Propchange: ofbiz/branches/release15.12/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Apr 10 11:42:38 2016
@@ -9,4 +9,4 @@
 /ofbiz/branches/json-integration-refactoring:1634077-1635900
 /ofbiz/branches/multitenant20100310:921280-927264
 /ofbiz/branches/release13.07:1547657
-/ofbiz/trunk:1722712,1723007,1723248,1724402,1724411,1724566,1724689,1724763,1724916,1724918,1724925,1724930,1724940,1724943,1724946,1724951,1724957,1724975,1724978,1725006,1725217,1725257,1725561,1725574,1726388,1726486,1726493,1726828,1728398,1728411,1729005,1729078,1729609,1729809,1730035,1730456,1730735-1730736,1730747,1730758,1730882,1730889,1731382,1731396,1732454,1732570,1732721,1733951,1733956,1734246,1734269,1734276,1734912,1734918,1735244,1735385,1735398,1735569,1735731,1735734,1735750,1735753,1735756,1735759,1735773,1736083,1736087,1736272,1736434,1736628,1736851,1736854,1737156,1737440,1738235,1738303
+/ofbiz/trunk:1722712,1723007,1723248,1724402,1724411,1724566,1724689,1724763,1724916,1724918,1724925,1724930,1724940,1724943,1724946,1724951,1724957,1724975,1724978,1725006,1725217,1725257,1725561,1725574,1726388,1726486,1726493,1726828,1728398,1728411,1729005,1729078,1729609,1729809,1730035,1730456,1730735-1730736,1730747,1730758,1730882,1730889,1731382,1731396,1732454,1732570,1732721,1733951,1733956,1734246,1734269,1734276,1734912,1734918,1735021,1735244,1735385,1735398,1735569,1735731,1735734,1735750,1735753,1735756,1735759,1735773,1736083,1736087,1736272,1736434,1736628,1736851,1736854,1737156,1737440,1738235,1738303

Modified: 
ofbiz/branches/release15.12/framework/base/src/org/ofbiz/base/util/UtilHttp.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/framework/base/src/org/ofbiz/base/util/UtilHttp.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/framework/base/src/org/ofbiz/base/util/UtilHttp.java
 (original)
+++ 
ofbiz/branches/release15.12/framework/base/src/org/ofbiz/base/util/UtilHttp.java
 Sun Apr 10 11:42:38 2016
@@ -43,12 +43,19 @@ import java.util.Set;
 import java.util.StringTokenizer;
 import java.util.TimeZone;
 
+import javax.net.ssl.SSLContext;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.apache.commons.lang.RandomStringUtils;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.ssl.SSLContexts;
 import org.apache.oro.text.regex.MalformedPatternException;
 import org.apache.oro.text.regex.Pattern;
 import org.apache.oro.text.regex.PatternMatcher;
@@ -1439,4 +1446,28 @@ public class UtilHttp {
         response.setHeader("Content-Disposition", String.format("%s; 
filename=\"%s\"", dispositionType, filename));
     }
 
+    public static CloseableHttpClient getAllowAllHttpClient() {
+        return getAllowAllHttpClient("component://base/config/ofbizssl.jks", 
"changeit");
+    }
+
+    public static CloseableHttpClient getAllowAllHttpClient(String 
jksStoreFileName, String jksStorePassword) {
+        try {
+            // Trust own CA and all self-signed certs
+            SSLContext sslContext = SSLContexts.custom()
+                    .loadTrustMaterial(FileUtil.getFile(jksStoreFileName), 
jksStorePassword.toCharArray(),
+                            new TrustSelfSignedStrategy())
+                    .build();
+            // No host name verifier
+            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
+                    sslContext,
+                    NoopHostnameVerifier.INSTANCE);
+            CloseableHttpClient httpClient = HttpClients.custom()
+                    .setSSLSocketFactory(sslsf)
+                    .build();
+            return httpClient;
+        } catch (Exception e) {
+            return HttpClients.createDefault();
+        }
+    }
+
 }

Modified: ofbiz/branches/release15.12/specialpurpose/passport/build.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/passport/build.xml?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- ofbiz/branches/release15.12/specialpurpose/passport/build.xml (original)
+++ ofbiz/branches/release15.12/specialpurpose/passport/build.xml Sun Apr 10 
11:42:38 2016
@@ -30,9 +30,9 @@ under the License.
     <property name="ofbiz.home.dir" value="../.."/>
 
     <path id="local.class.path">
-        <fileset dir="${lib.dir}" includes="*.jar"/>
         <fileset dir="../../framework/base/lib" includes="*.jar"/>
         <fileset dir="../../framework/base/lib/j2eespecs" includes="*.jar"/>
+        <fileset dir="../../framework/base/lib/commons" includes="*.jar"/>
         <fileset dir="../../framework/base/build/lib" includes="*.jar"/>
         <fileset dir="../../framework/entity/lib" includes="*.jar"/>
         <fileset dir="../../framework/entity/build/lib" includes="*.jar"/>

Modified: 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/GitHubEvents.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/GitHubEvents.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/GitHubEvents.java
 (original)
+++ 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/GitHubEvents.java
 Sun Apr 10 11:42:38 2016
@@ -20,6 +20,8 @@ package org.ofbiz.passport.event;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.Map;
@@ -28,13 +30,15 @@ import java.util.Random;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 import org.ofbiz.passport.user.GitHubAuthenticator;
 import org.ofbiz.passport.util.PassportUtil;
 import org.ofbiz.base.conversion.ConversionException;
@@ -52,6 +56,7 @@ import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.entity.util.EntityUtilProperties;
 import org.ofbiz.product.store.ProductStoreWorker;
 import org.ofbiz.service.LocalDispatcher;
 
@@ -164,25 +169,27 @@ public class GitHubEvents {
         String accessToken = null;
         String tokenType = null;
         
-        HttpClient jsonClient = new HttpClient();
-        PostMethod postMethod = new PostMethod(TokenEndpoint + 
TokenServiceUri);
         try {
-            HttpMethodParams params = new HttpMethodParams();
-            String queryString = "client_id=" + clientId
-                    + "&client_secret=" + secret
-                    + "&code=" + authorizationCode
-                    + "&redirect_uri=" + URLEncoder.encode(returnURI, "UTF-8");
-            // Debug.logInfo("GitHub get access token query string: " + 
queryString, module);
-            postMethod.setQueryString(queryString);
-            params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
-            postMethod.setParams(params);
-            postMethod.setRequestHeader(PassportUtil.ACCEPT_HEADER, 
"application/json");
-            jsonClient.executeMethod(postMethod);
-            // Debug.logInfo("GitHub get access token response code: " + 
postMethod.getStatusCode(), module);
-            // Debug.logInfo("GitHub get access token response content: " + 
postMethod.getResponseBodyAsString(1024), module);
-            if (postMethod.getStatusCode() == HttpStatus.SC_OK) {
-                // Debug.logInfo("Json Response from GitHub: " + 
postMethod.getResponseBodyAsString(1024), module);
-                JSON jsonObject = 
JSON.from(postMethod.getResponseBodyAsString(1024));
+            URI uri = new URIBuilder()
+                    .setHost(TokenEndpoint)
+                    .setPath(TokenServiceUri)
+                    .setParameter("client_id", clientId)
+                    .setParameter("client_secret", secret)
+                    .setParameter("code", authorizationCode)
+                    .setParameter("redirect_uri", URLEncoder.encode(returnURI, 
"UTF-8"))
+                    .build();
+            HttpPost postMethod = new HttpPost(uri);
+            CloseableHttpClient jsonClient = HttpClients.custom().build();
+            // Debug.logInfo("GitHub get access token query string: " + 
postMethod.getURI(), module);
+            postMethod.setConfig(PassportUtil.StandardRequestConfig);
+            postMethod.setHeader(PassportUtil.ACCEPT_HEADER, 
"application/json");
+            CloseableHttpResponse postResponse = 
jsonClient.execute(postMethod);
+            String responseString = new 
BasicResponseHandler().handleResponse(postResponse);
+            // Debug.logInfo("GitHub get access token response code: " + 
postResponse.getStatusLine().getStatusCode(), module);
+            // Debug.logInfo("GitHub get access token response content: " + 
responseString, module);
+            if (postResponse.getStatusLine().getStatusCode() == 
HttpStatus.SC_OK) {
+                // Debug.logInfo("Json Response from GitHub: " + 
responseString, module);
+                JSON jsonObject = JSON.from(responseString);
                 JSONToMap jsonMap = new JSONToMap();
                 Map<String, Object> userMap = jsonMap.convert(jsonObject);
                 accessToken = (String) userMap.get("access_token");
@@ -190,37 +197,29 @@ public class GitHubEvents {
                 // Debug.logInfo("Generated Access Token : " + accessToken, 
module);
                 // Debug.logInfo("Token Type: " + tokenType, module);
             } else {
-                String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2GitHubAccessTokenError", UtilMisc.toMap("error", 
postMethod.getResponseBodyAsString()), UtilHttp.getLocale(request));
+                String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2GitHubAccessTokenError", UtilMisc.toMap("error", responseString), 
UtilHttp.getLocale(request));
                 request.setAttribute("_ERROR_MESSAGE_", errMsg);
                 return "error";
             }
         } catch (UnsupportedEncodingException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
-        } catch (HttpException e) {
-            request.setAttribute("_ERROR_MESSAGE_", e.toString());
-            return "error";
         } catch (IOException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
         } catch (ConversionException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
-        } finally {
-            postMethod.releaseConnection();
-        }
+        } catch (URISyntaxException e) {
+            request.setAttribute("_ERROR_MESSAGE_", e.toString());
+            return "error";
+               }
         
         // Get User Profile
-        GetMethod getMethod = new GetMethod(ApiEndpoint + UserApiUri);
+        HttpGet getMethod = new HttpGet(ApiEndpoint + UserApiUri);
         Map<String, Object> userInfo = null;
         try {
             userInfo = GitHubAuthenticator.getUserInfo(getMethod, accessToken, 
tokenType, UtilHttp.getLocale(request));
-        } catch (HttpException e) {
-            request.setAttribute("_ERROR_MESSAGE_", e.toString());
-            return "error";
-        } catch (IOException e) {
-            request.setAttribute("_ERROR_MESSAGE_", e.toString());
-            return "error";
         } catch (AuthenticatorException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
@@ -285,12 +284,12 @@ public class GitHubEvents {
                 String userLoginId = authn.createUser(userInfo);
                 userLogin = delegator.findOne("UserLogin", 
UtilMisc.toMap("userLoginId", userLoginId), false);
             }
-            String password = PassportUtil.randomString();
+            String autoPassword = 
RandomStringUtils.randomAlphanumeric(Integer.parseInt(EntityUtilProperties.getPropertyValue("security",
 "password.length.min", "5", delegator)));
             boolean useEncryption = 
"true".equals(UtilProperties.getPropertyValue("security", "password.encrypt"));
-            userLogin.set("currentPassword", useEncryption ? 
HashCrypt.digestHash(LoginServices.getHashType(), null, password) : password);
+            userLogin.set("currentPassword", useEncryption ? 
HashCrypt.digestHash(LoginServices.getHashType(), null, autoPassword) : 
autoPassword);
             userLogin.store();
             request.setAttribute("USERNAME", 
userLogin.getString("userLoginId"));
-            request.setAttribute("PASSWORD", password);
+            request.setAttribute("PASSWORD", autoPassword);
         } catch (GenericEntityException e) {
             Debug.logError(e.getMessage(), module);
             request.setAttribute("_ERROR_MESSAGE_", e.toString());

Modified: 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/LinkedInEvents.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/LinkedInEvents.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/LinkedInEvents.java
 (original)
+++ 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/event/LinkedInEvents.java
 Sun Apr 10 11:42:38 2016
@@ -20,6 +20,8 @@ package org.ofbiz.passport.event;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.Map;
@@ -29,13 +31,15 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.parsers.ParserConfigurationException;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 import org.ofbiz.passport.user.LinkedInAuthenticator;
 import org.ofbiz.passport.util.PassportUtil;
 import org.ofbiz.base.conversion.ConversionException;
@@ -53,6 +57,7 @@ import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.entity.util.EntityUtilProperties;
 import org.ofbiz.product.store.ProductStoreWorker;
 import org.ofbiz.service.LocalDispatcher;
 import org.w3c.dom.Document;
@@ -164,58 +169,55 @@ public class LinkedInEvents {
         // Use the authorization code to obtain an access token
         String accessToken = null;
         
-        HttpClient jsonClient = new HttpClient();
-        PostMethod postMethod = new PostMethod(TokenEndpoint + 
TokenServiceUri);
         try {
-            HttpMethodParams params = new HttpMethodParams();
-            String queryString = "client_id=" + clientId
-                    + "&client_secret=" + secret
-                    + "&grant_type=authorization_code"
-                    + "&code=" + authorizationCode
-                    + "&redirect_uri=" + URLEncoder.encode(returnURI, "UTF-8");
-            // Debug.logInfo("LinkedIn get access token query string: " + 
queryString, module);
-            postMethod.setQueryString(queryString);
-            params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
-            postMethod.setParams(params);
-            jsonClient.executeMethod(postMethod);
-            // Debug.logInfo("LinkedIn get access token response code: " + 
postMethod.getStatusCode(), module);
-            // Debug.logInfo("LinkedIn get access token response content: " + 
postMethod.getResponseBodyAsString(1024), module);
-            if (postMethod.getStatusCode() == HttpStatus.SC_OK) {
-                // Debug.logInfo("Json Response from LinkedIn: " + 
postMethod.getResponseBodyAsString(1024), module);
-                JSON jsonObject = 
JSON.from(postMethod.getResponseBodyAsString(1024));
+            URI uri = new URIBuilder()
+                    .setHost(TokenEndpoint)
+                    .setPath(TokenServiceUri)
+                    .setParameter("client_id", clientId)
+                    .setParameter("client_secret", secret)
+                    .setParameter("grant_type", "authorization_code")
+                    .setParameter("code", authorizationCode)
+                    .setParameter("redirect_uri", URLEncoder.encode(returnURI, 
"UTF-8"))
+                    .build();
+            HttpPost postMethod = new HttpPost(uri);
+            CloseableHttpClient jsonClient = HttpClients.custom().build();
+            // Debug.logInfo("LinkedIn get access token query string: " + 
postMethod.getURI(), module);
+            postMethod.setConfig(PassportUtil.StandardRequestConfig);
+            CloseableHttpResponse postResponse = 
jsonClient.execute(postMethod);
+            String responseString = new 
BasicResponseHandler().handleResponse(postResponse);
+            // Debug.logInfo("LinkedIn get access token response code: " + 
postResponse.getStatusLine().getStatusCode(), module);
+            // Debug.logInfo("LinkedIn get access token response content: " + 
responseString, module);
+            if (postResponse.getStatusLine().getStatusCode() == 
HttpStatus.SC_OK) {
+                // Debug.logInfo("Json Response from LinkedIn: " + 
responseString, module);
+                JSON jsonObject = JSON.from(responseString);
                 JSONToMap jsonMap = new JSONToMap();
                 Map<String, Object> userMap = jsonMap.convert(jsonObject);
                 accessToken = (String) userMap.get("access_token");
                 // Debug.logInfo("Generated Access Token : " + accessToken, 
module);
             } else {
-                String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2LinkedInAccessTokenError", UtilMisc.toMap("error", 
postMethod.getResponseBodyAsString()), UtilHttp.getLocale(request));
+                String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2LinkedInAccessTokenError", UtilMisc.toMap("error", responseString), 
UtilHttp.getLocale(request));
                 request.setAttribute("_ERROR_MESSAGE_", errMsg);
                 return "error";
             }
         } catch (UnsupportedEncodingException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
-        } catch (HttpException e) {
-            request.setAttribute("_ERROR_MESSAGE_", e.toString());
-            return "error";
         } catch (IOException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
         } catch (ConversionException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
-        } finally {
-            postMethod.releaseConnection();
-        }
+        } catch (URISyntaxException e) {
+            request.setAttribute("_ERROR_MESSAGE_", e.toString());
+            return "error";
+               }
         
         // Get User Profile
-        GetMethod getMethod = new GetMethod(TokenEndpoint + UserApiUri + 
"?oauth2_access_token=" + accessToken);
+        HttpGet getMethod = new HttpGet(TokenEndpoint + UserApiUri + 
"?oauth2_access_token=" + accessToken);
         Document userInfo = null;
         try {
             userInfo = LinkedInAuthenticator.getUserInfo(getMethod, 
UtilHttp.getLocale(request));
-        } catch (HttpException e) {
-            request.setAttribute("_ERROR_MESSAGE_", e.toString());
-            return "error";
         } catch (IOException e) {
             request.setAttribute("_ERROR_MESSAGE_", e.toString());
             return "error";
@@ -289,12 +291,12 @@ public class LinkedInEvents {
                 String userLoginId = authn.createUser(userInfo);
                 userLogin = delegator.findOne("UserLogin", 
UtilMisc.toMap("userLoginId", userLoginId), false);
             }
-            String password = PassportUtil.randomString();
+            String autoPassword = 
RandomStringUtils.randomAlphanumeric(Integer.parseInt(EntityUtilProperties.getPropertyValue("security",
 "password.length.min", "5", delegator)));
             boolean useEncryption = 
"true".equals(UtilProperties.getPropertyValue("security", "password.encrypt"));
-            userLogin.set("currentPassword", useEncryption ? 
HashCrypt.digestHash(LoginServices.getHashType(), null, password) : password);
+            userLogin.set("currentPassword", useEncryption ? 
HashCrypt.digestHash(LoginServices.getHashType(), null, autoPassword) : 
autoPassword);
             userLogin.store();
             request.setAttribute("USERNAME", 
userLogin.getString("userLoginId"));
-            request.setAttribute("PASSWORD", password);
+            request.setAttribute("PASSWORD", autoPassword);
         } catch (GenericEntityException e) {
             Debug.logError(e.getMessage(), module);
             request.setAttribute("_ERROR_MESSAGE_", e.toString());

Modified: 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/GitHubAuthenticator.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/GitHubAuthenticator.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/GitHubAuthenticator.java
 (original)
+++ 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/GitHubAuthenticator.java
 Sun Apr 10 11:42:38 2016
@@ -27,12 +27,6 @@ import java.sql.Timestamp;
 
 import javax.transaction.Transaction;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.params.HttpMethodParams;
 import org.ofbiz.passport.event.GitHubEvents;
 import org.ofbiz.passport.user.GitHubUserGroupMapper;
 import org.ofbiz.passport.util.PassportUtil;
@@ -47,6 +41,13 @@ import org.ofbiz.entity.GenericEntityExc
 import org.ofbiz.entity.transaction.TransactionUtil;
 import org.ofbiz.entity.transaction.GenericTransactionException;
 import org.ofbiz.entity.util.EntityUtil;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 import org.ofbiz.base.conversion.ConversionException;
 import org.ofbiz.base.conversion.JSONConverters.JSONToMap;
 import org.ofbiz.base.lang.JSON;
@@ -98,7 +99,7 @@ public class GitHubAuthenticator impleme
      */
     public boolean authenticate(String userLoginId, String password, boolean 
isServiceAuth) throws AuthenticatorException {
         Map<String, Object> user = null;
-        GetMethod getMethod = null;
+        HttpGet getMethod = null;
         try {
             GenericValue userLogin = delegator.findOne("UserLogin", 
UtilMisc.toMap("userLoginId", userLoginId), false);
             String externalAuthId = userLogin.getString("externalAuthId");
@@ -107,16 +108,12 @@ public class GitHubAuthenticator impleme
                 String accessToken = gitHubUser.getString("accessToken");
                 String tokenType = gitHubUser.getString("tokenType");
                 if (UtilValidate.isNotEmpty(accessToken)) {
-                    getMethod = new GetMethod(GitHubEvents.ApiEndpoint + 
GitHubEvents.UserApiUri);
+                    getMethod = new HttpGet(GitHubEvents.ApiEndpoint + 
GitHubEvents.UserApiUri);
                     user = GitHubAuthenticator.getUserInfo(getMethod, 
accessToken, tokenType, Locale.getDefault());
                 }
             }
         } catch (GenericEntityException e) {
             throw new AuthenticatorException(e.getMessage(), e);
-        } catch (HttpException e) {
-            throw new AuthenticatorException(e.getMessage(), e);
-        } catch (IOException e) {
-            throw new AuthenticatorException(e.getMessage(), e);
         } catch (AuthenticatorException e) {
             throw new AuthenticatorException(e.getMessage(), e);
         } finally {
@@ -208,7 +205,7 @@ public class GitHubAuthenticator impleme
 
     private Map<String, Object> getGitHubUserinfo(String userLoginId) throws 
AuthenticatorException {
         Map<String, Object> user = null;
-        GetMethod getMethod = null;
+        HttpGet getMethod = null;
         try {
             GenericValue userLogin = delegator.findOne("UserLogin", 
UtilMisc.toMap("userLoginId", userLoginId), false);
             String externalAuthId = userLogin.getString("externalAuthId");
@@ -217,22 +214,14 @@ public class GitHubAuthenticator impleme
                 String accessToken = gitHubUser.getString("accessToken");
                 String tokenType = gitHubUser.getString("tokenType");
                 if (UtilValidate.isNotEmpty(accessToken)) {
-                    getMethod = new GetMethod(GitHubEvents.ApiEndpoint + 
GitHubEvents.UserApiUri);
+                    getMethod = new HttpGet(GitHubEvents.ApiEndpoint + 
GitHubEvents.UserApiUri);
                     user = getUserInfo(getMethod, accessToken, tokenType, 
Locale.getDefault());
                 }
             }
         } catch (GenericEntityException e) {
             throw new AuthenticatorException(e.getMessage(), e);
-        } catch (HttpException e) {
-            throw new AuthenticatorException(e.getMessage(), e);
-        } catch (IOException e) {
-            throw new AuthenticatorException(e.getMessage(), e);
         } catch (AuthenticatorException e) {
             throw new AuthenticatorException(e.getMessage(), e);
-        } finally {
-            if (getMethod != null) {
-                getMethod.releaseConnection();
-            }
         }
         return user;
     }
@@ -387,22 +376,36 @@ public class GitHubAuthenticator impleme
         return "true".equalsIgnoreCase(UtilProperties.getPropertyValue(props, 
"github.authenticator.enabled", "true"));
     }
 
-    public static Map<String, Object> getUserInfo(GetMethod getMethod, String 
accessToken, String tokenType, Locale locale) throws HttpException, 
IOException, AuthenticatorException {
+    public static Map<String, Object> getUserInfo(HttpGet httpGet, String 
accessToken, String tokenType, Locale locale) throws AuthenticatorException {
         JSON userInfo = null;
-        HttpClient jsonClient = new HttpClient();
-        HttpMethodParams params = new HttpMethodParams();
-        params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
-        getMethod.setParams(params);
-        getMethod.setRequestHeader(PassportUtil.AUTHORIZATION_HEADER, 
tokenType + " " + accessToken);
-        getMethod.setRequestHeader(PassportUtil.ACCEPT_HEADER, 
"application/json");
-        jsonClient.executeMethod(getMethod);
-        if (getMethod.getStatusCode() == HttpStatus.SC_OK) {
-            Debug.logInfo("Json Response from GitHub: " + 
getMethod.getResponseBodyAsString(), module);
-            userInfo = JSON.from(getMethod.getResponseBodyAsString());
-        } else {
-            String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2AccessTokenError", UtilMisc.toMap("error", 
getMethod.getResponseBodyAsString()), locale);
-            throw new AuthenticatorException(errMsg);
-        }
+        httpGet.setConfig(PassportUtil.StandardRequestConfig);
+        CloseableHttpClient jsonClient = HttpClients.custom().build();
+        httpGet.setHeader(PassportUtil.AUTHORIZATION_HEADER, tokenType + " " + 
accessToken);
+        httpGet.setHeader(PassportUtil.ACCEPT_HEADER, "application/json");
+        CloseableHttpResponse getResponse = null;
+               try {
+                       getResponse = jsonClient.execute(httpGet);
+            String responseString = new 
BasicResponseHandler().handleResponse(getResponse);
+               if (getResponse.getStatusLine().getStatusCode() == 
HttpStatus.SC_OK) {
+                   // Debug.logInfo("Json Response from GitHub: " + 
responseString, module);
+                   userInfo = JSON.from(responseString);
+               } else {
+                   String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2AccessTokenError", UtilMisc.toMap("error", responseString), locale);
+                   throw new AuthenticatorException(errMsg);
+               }
+               } catch (ClientProtocolException e) {
+            throw new AuthenticatorException(e.getMessage());
+               } catch (IOException e) {
+            throw new AuthenticatorException(e.getMessage());
+               } finally {
+                       if (getResponse != null) {
+                   try {
+                                       getResponse.close();
+                               } catch (IOException e) {
+                                       // do nothing
+                               }
+                       }
+               }
         JSONToMap jsonMap = new JSONToMap();
         Map<String, Object> userMap;
         try {

Modified: 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/LinkedInAuthenticator.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/LinkedInAuthenticator.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/LinkedInAuthenticator.java
 (original)
+++ 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/user/LinkedInAuthenticator.java
 Sun Apr 10 11:42:38 2016
@@ -28,13 +28,14 @@ import java.sql.Timestamp;
 import javax.transaction.Transaction;
 import javax.xml.parsers.ParserConfigurationException;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 import org.ofbiz.passport.event.LinkedInEvents;
+import org.ofbiz.passport.util.PassportUtil;
 import org.ofbiz.common.authentication.api.Authenticator;
 import org.ofbiz.common.authentication.api.AuthenticatorException;
 import org.ofbiz.service.LocalDispatcher;
@@ -99,7 +100,7 @@ public class LinkedInAuthenticator imple
      */
     public boolean authenticate(String userLoginId, String password, boolean 
isServiceAuth) throws AuthenticatorException {
         Document user = null;
-        GetMethod getMethod = null;
+        HttpGet getMethod = null;
         try {
             GenericValue userLogin = delegator.findOne("UserLogin", 
UtilMisc.toMap("userLoginId", userLoginId), false);
             String externalAuthId = userLogin.getString("externalAuthId");
@@ -107,14 +108,12 @@ public class LinkedInAuthenticator imple
             if (UtilValidate.isNotEmpty(linkedInUser)) {
                 String accessToken = linkedInUser.getString("accessToken");
                 if (UtilValidate.isNotEmpty(accessToken)) {
-                    getMethod = new GetMethod(LinkedInEvents.TokenEndpoint + 
LinkedInEvents.UserApiUri  + "?oauth2_access_token=" + accessToken);
+                    getMethod = new HttpGet(LinkedInEvents.TokenEndpoint + 
LinkedInEvents.UserApiUri  + "?oauth2_access_token=" + accessToken);
                     user = LinkedInAuthenticator.getUserInfo(getMethod, 
Locale.getDefault());
                 }
             }
         } catch (GenericEntityException e) {
             throw new AuthenticatorException(e.getMessage(), e);
-        } catch (HttpException e) {
-            throw new AuthenticatorException(e.getMessage(), e);
         } catch (IOException e) {
             throw new AuthenticatorException(e.getMessage(), e);
         } catch (AuthenticatorException e) {
@@ -213,7 +212,7 @@ public class LinkedInAuthenticator imple
 
     private Document getLinkedInUserinfo(String userLoginId) throws 
AuthenticatorException {
         Document user = null;
-        GetMethod getMethod = null;
+        HttpGet getMethod = null;
         try {
             GenericValue userLogin = delegator.findOne("UserLogin", 
UtilMisc.toMap("userLoginId", userLoginId), false);
             String externalAuthId = userLogin.getString("externalAuthId");
@@ -221,14 +220,12 @@ public class LinkedInAuthenticator imple
             if (UtilValidate.isNotEmpty(linkedInUser)) {
                 String accessToken = linkedInUser.getString("accessToken");
                 if (UtilValidate.isNotEmpty(accessToken)) {
-                    getMethod = new GetMethod(LinkedInEvents.TokenEndpoint + 
LinkedInEvents.UserApiUri + "?oauth2_access_token=" + accessToken);
+                    getMethod = new HttpGet(LinkedInEvents.TokenEndpoint + 
LinkedInEvents.UserApiUri + "?oauth2_access_token=" + accessToken);
                     user = getUserInfo(getMethod, Locale.getDefault());
                 }
             }
         } catch (GenericEntityException e) {
             throw new AuthenticatorException(e.getMessage(), e);
-        } catch (HttpException e) {
-            throw new AuthenticatorException(e.getMessage(), e);
         } catch (IOException e) {
             throw new AuthenticatorException(e.getMessage(), e);
         } catch (AuthenticatorException e) {
@@ -399,18 +396,17 @@ public class LinkedInAuthenticator imple
         return "true".equalsIgnoreCase(UtilProperties.getPropertyValue(props, 
"linked.authenticator.enabled", "true"));
     }
 
-    public static Document getUserInfo(GetMethod getMethod, Locale locale) 
throws HttpException, IOException, AuthenticatorException, SAXException, 
ParserConfigurationException {
+    public static Document getUserInfo(HttpGet httpGet, Locale locale) throws 
IOException, AuthenticatorException, SAXException, ParserConfigurationException 
{
         Document userInfo = null;
-        HttpClient jsonClient = new HttpClient();
-        HttpMethodParams params = new HttpMethodParams();
-        params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
-        getMethod.setParams(params);
-        jsonClient.executeMethod(getMethod);
-        if (getMethod.getStatusCode() == HttpStatus.SC_OK) {
-            Debug.logInfo("Json Response from LinkedIn: " + 
getMethod.getResponseBodyAsString(), module);
-            userInfo = 
UtilXml.readXmlDocument(getMethod.getResponseBodyAsString());
+        httpGet.setConfig(PassportUtil.StandardRequestConfig);
+        CloseableHttpClient jsonClient = HttpClients.custom().build();
+        CloseableHttpResponse getResponse = jsonClient.execute(httpGet);
+        String responseString = new 
BasicResponseHandler().handleResponse(getResponse);
+        if (getResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+            // Debug.logInfo("Json Response from LinkedIn: " + responseString, 
module);
+            userInfo = UtilXml.readXmlDocument(responseString);
         } else {
-            String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2AccessTokenError", UtilMisc.toMap("error", 
getMethod.getResponseBodyAsString()), locale);
+            String errMsg = UtilProperties.getMessage(resource, 
"GetOAuth2AccessTokenError", UtilMisc.toMap("error", responseString), locale);
             throw new AuthenticatorException(errMsg);
         }
         return userInfo;

Modified: 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/util/PassportUtil.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/util/PassportUtil.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/util/PassportUtil.java
 (original)
+++ 
ofbiz/branches/release15.12/specialpurpose/passport/src/org/ofbiz/passport/util/PassportUtil.java
 Sun Apr 10 11:42:38 2016
@@ -18,27 +18,12 @@
  
*******************************************************************************/
 package org.ofbiz.passport.util;
 
-import java.io.IOException;
 import java.net.InetAddress;
-import java.net.Socket;
 import java.net.UnknownHostException;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLContextBuilder;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
+import org.apache.http.client.config.CookieSpecs;
+import org.apache.http.client.config.RequestConfig;
 import org.ofbiz.base.util.Debug;
 
 public class PassportUtil {
@@ -105,6 +90,10 @@ public class PassportUtil {
 
     public static final String COMMON_APP_SECRET = "AppSecret";
     
+    public static final RequestConfig StandardRequestConfig = 
RequestConfig.custom()
+                                                                           
.setCookieSpec(CookieSpecs.STANDARD)
+                                                                           
.build();
+    
     protected PassportUtil() {
         // empty constructor
     }
@@ -128,69 +117,4 @@ public class PassportUtil {
         }
         return prefix;
     }
-
-    private static String randomString(int lo, int hi) {
-        int n = rand(lo, hi);
-        byte b[] = new byte[n];
-        for (int i = 0; i < n; i++) {
-            b[i] = (byte)rand('a', 'z');
-        }
-        return new String(b);
-    }
-
-    private static int rand(int lo, int hi) {
-        java.util.Random rn = new java.util.Random();
-        int n = hi - lo + 1;
-        int i = rn.nextInt() % n;
-        if (i < 0)
-                i = -i;
-        return lo + i;
-    }
-
-    public static String randomString() {
-        return randomString(8, 15);
-    }
-
-    public CloseableHttpClient getAllowAllHttpClient() {
-        try {
-            SSLContextBuilder builder = new SSLContextBuilder();
-            builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
-            SSLConnectionSocketFactory sf = new 
AllowAllSSLSocketFactory(builder.build());
-            CloseableHttpClient httpclient = 
HttpClients.custom().setSSLSocketFactory(sf).build();
-            return httpclient;
-        } catch (Exception e) {
-            return HttpClients.createDefault();
-        }
-    }
-
-    public class AllowAllSSLSocketFactory extends SSLConnectionSocketFactory {
-        SSLContext sslContext = SSLContext.getInstance("TLS");
-
-        public AllowAllSSLSocketFactory(SSLContext sslContext) throws 
NoSuchAlgorithmException, KeyManagementException, KeyStoreException, 
UnrecoverableKeyException {
-            super(sslContext);
-
-            TrustManager tm = new X509TrustManager() {
-                public void checkClientTrusted(X509Certificate[] chain, String 
authType) throws CertificateException {
-                }
-
-                public void checkServerTrusted(X509Certificate[] chain, String 
authType) throws CertificateException {
-                }
-
-                public X509Certificate[] getAcceptedIssuers() {
-                    return null;
-                }
-            };
-
-            sslContext.init(null, new TrustManager[] { tm }, null);
-        }
-
-        public Socket createSocket(Socket socket, String host, int port, 
boolean autoClose) throws IOException, UnknownHostException {
-            return sslContext.getSocketFactory().createSocket(socket, host, 
port, autoClose);
-        }
-
-        public Socket createSocket() throws IOException {
-            return sslContext.getSocketFactory().createSocket();
-        }
-    }
-
 }
\ No newline at end of file

Modified: 
ofbiz/branches/release15.12/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java?rev=1738421&r1=1738420&r2=1738421&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java
 (original)
+++ 
ofbiz/branches/release15.12/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java
 Sun Apr 10 11:42:38 2016
@@ -18,12 +18,20 @@
  
*******************************************************************************/
 package org.ofbiz.solr;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrRequest.METHOD;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -34,6 +42,7 @@ import org.ofbiz.base.component.Componen
 import org.ofbiz.base.component.ComponentException;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilGenerics;
+import org.ofbiz.base.util.UtilHttp;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.GenericEntityException;
@@ -41,7 +50,7 @@ import org.ofbiz.entity.GenericEntityExc
 /**
  * Solr utility class.
  */
-public abstract class SolrUtil {
+public final class SolrUtil {
     
     public static final String module = SolrUtil.class.getName();
     private static String[] solrProdAttribute = { "productId", "internalName", 
"manu", "size", "smallImage", "mediumImage", "largeImage", "listPrice", 
"defaultPrice", "inStock", "isVirtual" };
@@ -49,6 +58,22 @@ public abstract class SolrUtil {
     public static final String solrConfigName = "solrconfig.properties";
     public static final String solrUrl = makeSolrWebappUrl();
     
+    protected static final String socketTimeoutString = 
UtilProperties.getPropertyValue(solrConfigName, "solr.client.socket.timeout");
+    
+    protected static final String connectionTimeoutString = 
UtilProperties.getPropertyValue(solrConfigName, 
"solr.client.connection.timeout");
+    
+    protected static final String clientUsername = 
UtilProperties.getPropertyValue(solrConfigName, "solr.client.username");
+    
+    protected static final String clientPassword = 
UtilProperties.getPropertyValue(solrConfigName, "solr.client.password");
+
+    protected static final Integer socketTimeout = getSocketTimeout();
+    
+    protected static final Integer connectionTimeout = getConnectionTimeout();
+    
+    protected static final String trustSelfSignedCertString = 
UtilProperties.getPropertyValue(solrConfigName, 
"solr.client.trust.selfsigned.cert", "false");
+    
+    protected static final boolean trustSelfSignedCert = 
getTrustSelfSignedCert();
+    
     public static String makeSolrWebappUrl() {
         final String solrWebappProtocol = 
UtilProperties.getPropertyValue(solrConfigName, "solr.webapp.protocol");
         final String solrWebappDomainName = 
UtilProperties.getPropertyValue(solrConfigName, "solr.webapp.domainName");
@@ -58,14 +83,42 @@ public abstract class SolrUtil {
         String solrPort;
         if (UtilValidate.isNotEmpty(solrWebappPortOverride)) {
             solrPort = solrWebappPortOverride;
-        }
-        else {
+        } else {
             solrPort = UtilProperties.getPropertyValue("url", 
("https".equals(solrWebappProtocol) ? "port.https" : "port.http"));
         }
         
         return solrWebappProtocol + "://" + solrWebappDomainName + ":" + 
solrPort + solrWebappPath;
     }
     
+    private static Integer getSocketTimeout() {
+        if (UtilValidate.isNotEmpty(socketTimeoutString)) {
+            try {
+                return Integer.parseInt(socketTimeoutString);
+            } catch (Exception e) {
+                return null;
+            }
+        }
+        return null;
+    }
+
+    private static Integer getConnectionTimeout() {
+        if (UtilValidate.isNotEmpty(connectionTimeoutString)) {
+            try {
+                return Integer.parseInt(connectionTimeoutString);
+            } catch (Exception e) {
+                return null;
+            }
+        }
+        return null;
+    }
+
+    private static boolean getTrustSelfSignedCert() {
+        if ("true".equals(trustSelfSignedCertString)) {
+            return true;
+        }
+        return false;
+    }
+
     public static boolean isSolrEcaEnabled() {
         Boolean ecaEnabled = null;
         String sysProp = System.getProperty("ofbiz.solr.eca.enabled");
@@ -181,18 +234,18 @@ public abstract class SolrUtil {
         return doc1;
     }
     
-    public static Map<String, Object> categoriesAvailable(String catalogId, 
String categoryId, String productId, boolean displayproducts, int viewIndex, 
int viewSize) {
-        return 
categoriesAvailable(catalogId,categoryId,productId,null,displayproducts,viewIndex,viewSize);
+    public static Map<String, Object> categoriesAvailable(String catalogId, 
String categoryId, String productId, boolean displayproducts, int viewIndex, 
int viewSize, String solrIndexName) {
+        return categoriesAvailable(catalogId, categoryId, productId, null, 
displayproducts, viewIndex, viewSize, solrIndexName);
     }
 
-    public static Map<String, Object> categoriesAvailable(String catalogId, 
String categoryId, String productId, String facetPrefix, boolean 
displayproducts, int viewIndex, int viewSize) {
+    public static Map<String, Object> categoriesAvailable(String catalogId, 
String categoryId, String productId, String facetPrefix, boolean 
displayproducts, int viewIndex, int viewSize, String solrIndexName) {
         // create the data model
         Map<String, Object> result = new HashMap<String, Object>();
         HttpSolrClient client = null;
         QueryResponse returnMap = new QueryResponse();
         try {
             // do the basic query
-            client = new HttpSolrClient(solrUrl);
+            client = getHttpSolrClient(solrIndexName);
             // create Query Object
             String query = "inStock[1 TO *]";
             if (categoryId != null)
@@ -235,4 +288,48 @@ public abstract class SolrUtil {
         return result;
     }
 
+    public static SolrUtil getInstance() {
+        return new SolrUtil();
+    }
+
+    public static HttpSolrClient getHttpSolrClient(String solrIndexName) 
throws ClientProtocolException, IOException {
+        HttpClientContext httpContext = HttpClientContext.create();
+        
+        CloseableHttpClient httpClient = null;
+        if (trustSelfSignedCert) {
+            httpClient = UtilHttp.getAllowAllHttpClient();
+        } else {
+            httpClient = HttpClients.createDefault();
+        }
+        
+        RequestConfig requestConfig = null;
+        if (UtilValidate.isNotEmpty(socketTimeout) && 
UtilValidate.isNotEmpty(connectionTimeout)) {
+            requestConfig = RequestConfig.custom()
+                  .setSocketTimeout(socketTimeout)
+                  .setConnectTimeout(connectionTimeout)
+                  .setRedirectsEnabled(true)
+                  .build();
+        } else if (UtilValidate.isNotEmpty(socketTimeout)) {
+            requestConfig = RequestConfig.custom()
+                    .setSocketTimeout(socketTimeout)
+                    .setRedirectsEnabled(true)
+                    .build();
+        } else if (UtilValidate.isNotEmpty(connectionTimeout)) {
+            requestConfig = RequestConfig.custom()
+                    .setConnectTimeout(connectionTimeout)
+                    .setRedirectsEnabled(true)
+                    .build();
+        } else {
+            requestConfig = RequestConfig.custom()
+                    .setRedirectsEnabled(true)
+                    .build();
+        }
+
+        HttpGet httpLogin = new HttpGet(solrUrl + "/control/login?USERNAME=" + 
clientUsername + "&PASSWORD=" + clientPassword);
+        httpLogin.setConfig(requestConfig);
+        CloseableHttpResponse loginResponse = httpClient.execute(httpLogin, 
httpContext);
+        loginResponse.close();
+        return new HttpSolrClient(solrUrl + "/" + solrIndexName, httpClient);
+    }
+
 }


Reply via email to