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);
+ }
+
}