From 8ce68906b4580cca3bf0ef47ef51dc2bf721ba97 Mon Sep 17 00:00:00 2001 From: AMIT KUMAR <amit.kumar@tarento.com> Date: Thu, 26 Aug 2021 12:47:47 +0530 Subject: [PATCH] =?UTF-8?q?Issue=20#SB-000=20feat:=20added=20request=20con?= =?UTF-8?q?text=20to=20HttpClientUtil=20class=20met=E2=80=A6=20(#924)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Issue #SB-000 feat: added request context to HttpClientUtil class methods --- .../validator/UserGetRequestValidator.java | 4 +- controller/app/util/CaptchaHelper.java | 2 +- .../usermanagement/UserControllerTest.java | 3 +- controller/test/util/CaptchaHelperTest.java | 3 +- .../providerimpl/NICGatewaySmsProvider.java | 2 +- .../java/org/sunbird/http/HttpClientUtil.java | 201 +++++++----------- .../sso/KeycloakBruteForceAttackUtil.java | 4 +- .../sso/KeycloakRequiredActionLinkUtil.java | 2 +- .../java/org/sunbird/sso/KeycloakUtil.java | 2 +- .../java/org/sunbird/url/URLShortner.java | 4 +- .../java/org/sunbird/url/URLShortnerImpl.java | 13 +- .../org/sunbird/http/HttpClientUtilTest.java | 11 +- .../sso/KeycloakBruteForceAttackUtilTest.java | 4 +- .../org/sunbird/sso/KeycloakUtilTest.java | 2 +- .../org/sunbird/url/URLShortnerImplTest.java | 4 +- .../org/sunbird/util/ProjectUtilTest.java | 10 - .../BackGroundNotificationActor.java | 2 +- .../OrganisationBackgroundActor.java | 3 +- .../organisation/impl/OrgServiceImpl.java | 6 +- .../service/user/ResetPasswordService.java | 8 +- .../org/sunbird/util/AdminUtilHandler.java | 3 +- .../org/sunbird/util/FormApiUtilHandler.java | 3 +- .../util/contentstore/ContentStoreUtil.java | 2 +- .../organisation/OrgManagementActorTest.java | 2 +- .../OrganisationBackgroundActorTest.java | 3 +- .../actor/user/ResetPasswordActorTest.java | 2 +- .../user/ResetPasswordServiceTest.java | 4 +- .../sunbird/util/AdminUtilHandlerTest.java | 5 +- .../FormApiUtilHandlerEmptyConfigTest.java | 4 +- .../sunbird/util/FormApiUtilHandlerTest.java | 2 +- 30 files changed, 133 insertions(+), 187 deletions(-) diff --git a/controller/app/controllers/usermanagement/validator/UserGetRequestValidator.java b/controller/app/controllers/usermanagement/validator/UserGetRequestValidator.java index 6ed882c2a..90d2f0eda 100644 --- a/controller/app/controllers/usermanagement/validator/UserGetRequestValidator.java +++ b/controller/app/controllers/usermanagement/validator/UserGetRequestValidator.java @@ -53,8 +53,8 @@ public class UserGetRequestValidator extends BaseRequestValidator { public void validateGetUserByKeyRequestaWithCaptcha(Request request, Http.Request httpRequest) { String captcha = httpRequest.getQueryString(JsonKey.CAPTCHA_RESPONSE); - logger.info("QueryString: " + httpRequest.uri()); - logger.info("Captach: " + captcha); + logger.debug("QueryString: " + httpRequest.uri()); + logger.debug("Captach: " + captcha); String mobileApp = httpRequest.getQueryString(JsonKey.MOBILE_APP); if (Boolean.parseBoolean(ProjectUtil.getConfigValue(JsonKey.ENABLE_CAPTCHA)) && !new CaptchaHelper().validate(captcha, mobileApp)) { diff --git a/controller/app/util/CaptchaHelper.java b/controller/app/util/CaptchaHelper.java index 0298e8dd5..52f37329c 100644 --- a/controller/app/util/CaptchaHelper.java +++ b/controller/app/util/CaptchaHelper.java @@ -46,7 +46,7 @@ public class CaptchaHelper { .toString(); logger.info("Calling Api: " + url); logger.info("Captcha: " + captcha); - String response = HttpClientUtil.postFormData(url, requestMap, headers); + String response = HttpClientUtil.postFormData(url, requestMap, headers, null); Map<String, Object> responseMap = mapper.readValue(response, Map.class); isCaptchaValid = (boolean) responseMap.get("success"); if (!isCaptchaValid) { diff --git a/controller/test/controllers/usermanagement/UserControllerTest.java b/controller/test/controllers/usermanagement/UserControllerTest.java index d403b2518..3cbde80f1 100644 --- a/controller/test/controllers/usermanagement/UserControllerTest.java +++ b/controller/test/controllers/usermanagement/UserControllerTest.java @@ -29,6 +29,7 @@ import org.sunbird.http.HttpClientUtil; import org.sunbird.keys.JsonKey; import org.sunbird.model.user.UserDeclareEntity; import org.sunbird.request.HeaderParam; +import org.sunbird.request.RequestContext; import org.sunbird.response.Response; import org.sunbird.response.ResponseParams; import org.sunbird.util.ProjectUtil; @@ -577,7 +578,7 @@ public class UserControllerTest extends BaseApplicationTest { ObjectMapper objectMapper = new ObjectMapper(); String s = objectMapper.writeValueAsString(map); when(ProjectUtil.getConfigValue(Mockito.anyString())).thenReturn("anyString"); - when(HttpClientUtil.postFormData(Mockito.anyString(), Mockito.anyMap(), Mockito.anyMap())) + when(HttpClientUtil.postFormData(Mockito.anyString(), Mockito.anyMap(), Mockito.anyMap(),Mockito.any(RequestContext.class))) .thenReturn(s); Result result = performTest("/v2/user/exists/email/demo@gmail.com", "GET", null); assertTrue(getResponseStatus(result) == 200); diff --git a/controller/test/util/CaptchaHelperTest.java b/controller/test/util/CaptchaHelperTest.java index 1f99d169b..daccd9016 100644 --- a/controller/test/util/CaptchaHelperTest.java +++ b/controller/test/util/CaptchaHelperTest.java @@ -16,6 +16,7 @@ import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.sunbird.http.HttpClientUtil; +import org.sunbird.request.RequestContext; import org.sunbird.util.ProjectUtil; @RunWith(PowerMockRunner.class) @@ -54,7 +55,7 @@ public class CaptchaHelperTest { ObjectMapper objectMapper = new ObjectMapper(); String s = objectMapper.writeValueAsString(map); when(ProjectUtil.getConfigValue(Mockito.anyString())).thenReturn("anyString"); - when(HttpClientUtil.postFormData(Mockito.anyString(), Mockito.anyMap(), Mockito.anyMap())) + when(HttpClientUtil.postFormData(Mockito.anyString(), Mockito.anyMap(), Mockito.anyMap(), Mockito.any())) .thenReturn(s); } } diff --git a/core/notification-utils/src/main/java/org/sunbird/notification/sms/providerimpl/NICGatewaySmsProvider.java b/core/notification-utils/src/main/java/org/sunbird/notification/sms/providerimpl/NICGatewaySmsProvider.java index 6b222d7a9..55bccc8d8 100644 --- a/core/notification-utils/src/main/java/org/sunbird/notification/sms/providerimpl/NICGatewaySmsProvider.java +++ b/core/notification-utils/src/main/java/org/sunbird/notification/sms/providerimpl/NICGatewaySmsProvider.java @@ -75,7 +75,7 @@ public class NICGatewaySmsProvider implements ISmsProvider { Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); headers.put("Accept", "application/json"); - String response = HttpClientUtil.get(URI.toString(), headers); + String response = HttpClientUtil.get(URI.toString(), headers, context); if (StringUtils.isNotBlank(response)) { ObjectMapper mapper = new ObjectMapper(); Map<String, Object> resultMap; diff --git a/core/platform-common/src/main/java/org/sunbird/http/HttpClientUtil.java b/core/platform-common/src/main/java/org/sunbird/http/HttpClientUtil.java index 418055699..655463360 100644 --- a/core/platform-common/src/main/java/org/sunbird/http/HttpClientUtil.java +++ b/core/platform-common/src/main/java/org/sunbird/http/HttpClientUtil.java @@ -1,5 +1,6 @@ package org.sunbird.http; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -22,6 +23,7 @@ import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.sunbird.logging.LoggerUtil; +import org.sunbird.request.RequestContext; public class HttpClientUtil { private static LoggerUtil logger = new LoggerUtil(HttpClientUtil.class); @@ -68,7 +70,7 @@ public class HttpClientUtil { return httpClientUtil; } - public static String get(String requestURL, Map<String, String> headers) { + public static String get(String requestURL, Map<String, String> headers, RequestContext context) { CloseableHttpResponse response = null; try { HttpGet httpGet = new HttpGet(requestURL); @@ -78,53 +80,16 @@ public class HttpClientUtil { } } response = httpclient.execute(httpGet); - int status = response.getStatusLine().getStatusCode(); - if (status >= 200 && status < 300) { - HttpEntity httpEntity = response.getEntity(); - byte[] bytes = EntityUtils.toByteArray(httpEntity); - StatusLine sl = response.getStatusLine(); - logger.debug( - "Response from get call : " + sl.getStatusCode() + " - " + sl.getReasonPhrase()); - return new String(bytes); - } else { - getErrorResponse(response, "GET"); - return ""; - } + return getResponse(response, context, "GET"); } catch (Exception ex) { - logger.error("Exception occurred while calling get method", ex); + logger.error(context,"Exception occurred while calling get method", ex); return ""; } finally { - if (null != response) { - try { - response.close(); - } catch (Exception ex) { - logger.error("Exception occurred while closing get response object", ex); - } - } - } - } - - private static void getErrorResponse(CloseableHttpResponse response, String method) { - try { - HttpEntity httpEntity = response.getEntity(); - byte[] bytes = EntityUtils.toByteArray(httpEntity); - StatusLine sl = response.getStatusLine(); - String resp = new String(bytes); - logger.info( - "Response from : " - + method - + " call " - + resp - + " status " - + sl.getStatusCode() - + " - " - + sl.getReasonPhrase()); - } catch (Exception ex) { - logger.error("Exception occurred while fetching response", ex); + closeResponse(response, context, "GET"); } } - public static String post(String requestURL, String params, Map<String, String> headers) { + public static String post(String requestURL, String params, Map<String, String> headers, RequestContext context) { CloseableHttpResponse response = null; try { HttpPost httpPost = new HttpPost(requestURL); @@ -137,34 +102,17 @@ public class HttpClientUtil { httpPost.setEntity(entity); response = httpclient.execute(httpPost); - int status = response.getStatusLine().getStatusCode(); - if (status >= 200 && status < 300) { - HttpEntity httpEntity = response.getEntity(); - byte[] bytes = EntityUtils.toByteArray(httpEntity); - StatusLine sl = response.getStatusLine(); - logger.debug( - "Response from post call : " + sl.getStatusCode() + " - " + sl.getReasonPhrase()); - return new String(bytes); - } else { - getErrorResponse(response, "POST"); - return ""; - } + return getResponse(response, context, "POST"); } catch (Exception ex) { - logger.error("Exception occurred while calling Post method", ex); + logger.error(context,"Exception occurred while calling Post method", ex); return ""; } finally { - if (null != response) { - try { - response.close(); - } catch (Exception ex) { - logger.error("Exception occurred while closing Post response object", ex); - } - } + closeResponse(response, context, "POST"); } } public static String postFormData( - String requestURL, Map<String, String> params, Map<String, String> headers) { + String requestURL, Map<String, String> params, Map<String, String> headers, RequestContext context) { CloseableHttpResponse response = null; try { HttpPost httpPost = new HttpPost(requestURL); @@ -183,33 +131,16 @@ public class HttpClientUtil { httpPost.setEntity(entity); response = httpclient.execute(httpPost); - int status = response.getStatusLine().getStatusCode(); - if (status >= 200 && status < 300) { - HttpEntity httpEntity = response.getEntity(); - byte[] bytes = EntityUtils.toByteArray(httpEntity); - StatusLine sl = response.getStatusLine(); - logger.debug( - "Response from post call : " + sl.getStatusCode() + " - " + sl.getReasonPhrase()); - return new String(bytes); - } else { - getErrorResponse(response, "POST FORM DATA"); - return ""; - } + return getResponse(response, context, "postFormData"); } catch (Exception ex) { - logger.error("Exception occurred while calling Post method", ex); + logger.error(context,"Exception occurred while calling postFormData method", ex); return ""; } finally { - if (null != response) { - try { - response.close(); - } catch (Exception ex) { - logger.error("Exception occurred while closing Post response object", ex); - } - } + closeResponse(response, context, "postFormData"); } } - public static String patch(String requestURL, String params, Map<String, String> headers) { + public static String patch(String requestURL, String params, Map<String, String> headers, RequestContext context) { CloseableHttpResponse response = null; try { HttpPatch httpPatch = new HttpPatch(requestURL); @@ -222,35 +153,16 @@ public class HttpClientUtil { httpPatch.setEntity(entity); response = httpclient.execute(httpPatch); - int status = response.getStatusLine().getStatusCode(); - if (status >= 200 && status < 300) { - HttpEntity httpEntity = response.getEntity(); - byte[] bytes = EntityUtils.toByteArray(httpEntity); - StatusLine sl = response.getStatusLine(); - logger.debug( - "Response from patch call : " + sl.getStatusCode() + " - " + sl.getReasonPhrase()); - String resp = new String(bytes); - logger.info("Got response from patch call : " + resp); - return resp; - } else { - getErrorResponse(response, "PATCH"); - return ""; - } + return getResponse(response, context, "PATCH"); } catch (Exception ex) { - logger.error("Exception occurred while calling patch method", ex); + logger.error(context,"Exception occurred while calling patch method", ex); return ""; } finally { - if (null != response) { - try { - response.close(); - } catch (Exception ex) { - logger.error("Exception occurred while closing patch response object", ex); - } - } + closeResponse(response, context, "PATCH"); } } - public static String delete(String requestURL, Map<String, String> headers) { + public static String delete(String requestURL, Map<String, String> headers, RequestContext context) { CloseableHttpResponse response = null; try { HttpDelete httpDelete = new HttpDelete(requestURL); @@ -260,32 +172,63 @@ public class HttpClientUtil { } } response = httpclient.execute(httpDelete); - int status = response.getStatusLine().getStatusCode(); - if (status >= 200 && status < 300) { - HttpEntity httpEntity = response.getEntity(); - StatusLine sl = response.getStatusLine(); - logger.debug( - "Response from delete call : " + sl.getStatusCode() + " - " + sl.getReasonPhrase()); - if (null != httpEntity) { - byte[] bytes = EntityUtils.toByteArray(httpEntity); - return new String(bytes); - } else { - return ""; - } + return getResponse(response, context, "DELETE"); + } catch (Exception ex) { + logger.error(context,"Exception occurred while calling delete method", ex); + return ""; + } finally { + closeResponse(response, context, "DELETE"); + } + } + + + private static String getResponse(CloseableHttpResponse response, RequestContext context, String method) throws IOException { + int status = response.getStatusLine().getStatusCode(); + if (status >= 200 && status < 300) { + HttpEntity httpEntity = response.getEntity(); + StatusLine sl = response.getStatusLine(); + logger.debug(context, + "Response from "+method+" call : " + sl.getStatusCode() + " - " + sl.getReasonPhrase()); + if (null != httpEntity) { + byte[] bytes = EntityUtils.toByteArray(httpEntity); + String resp = new String(bytes); + logger.info(context,"Got response from "+method+" call : " + resp); + return resp; } else { - getErrorResponse(response, "DELETE"); return ""; } - } catch (Exception ex) { - logger.error("Exception occurred while calling delete method", ex); + } else { + getErrorResponse(response, method, context); return ""; - } finally { - if (null != response) { - try { - response.close(); - } catch (Exception ex) { - logger.error("Exception occurred while closing delete response object", ex); - } + } + } + + private static void getErrorResponse(CloseableHttpResponse response, String method, RequestContext context) { + try { + HttpEntity httpEntity = response.getEntity(); + byte[] bytes = EntityUtils.toByteArray(httpEntity); + StatusLine sl = response.getStatusLine(); + String resp = new String(bytes); + logger.info(context, + "Response from : " + + method + + " call " + + resp + + " status " + + sl.getStatusCode() + + " - " + + sl.getReasonPhrase()); + } catch (Exception ex) { + logger.error(context, "Exception occurred while fetching response for method "+method, ex); + } + } + + private static void closeResponse(CloseableHttpResponse response, RequestContext context, String method) { + if (null != response) { + try { + response.close(); + } catch (Exception ex) { + logger.error(context,"Exception occurred while closing "+method+" response object", ex); } } } diff --git a/core/platform-common/src/main/java/org/sunbird/sso/KeycloakBruteForceAttackUtil.java b/core/platform-common/src/main/java/org/sunbird/sso/KeycloakBruteForceAttackUtil.java index 82f84b2d8..833b10268 100644 --- a/core/platform-common/src/main/java/org/sunbird/sso/KeycloakBruteForceAttackUtil.java +++ b/core/platform-common/src/main/java/org/sunbird/sso/KeycloakBruteForceAttackUtil.java @@ -33,7 +33,7 @@ public class KeycloakBruteForceAttackUtil { + "/attack-detection/brute-force/users/" + fedUserPrefix + userId; - String response = HttpClientUtil.get(url, getHeaders(context)); + String response = HttpClientUtil.get(url, getHeaders(context), context); logger.info(context, "KeycloakBruteForceAttackUtil:getUserStatus: Response = " + response); Map<String, Object> attackStatus = new ObjectMapper().readValue(response, Map.class); boolean isDisabled = ((boolean) attackStatus.get("disabled")); @@ -57,7 +57,7 @@ public class KeycloakBruteForceAttackUtil { + "/attack-detection/brute-force/users/" + fedUserPrefix + userId; - HttpClientUtil.delete(url, getHeaders(context)); + HttpClientUtil.delete(url, getHeaders(context), context); logger.info(context, "clear Brute Force For User for userId : " + userId); return true; } diff --git a/core/platform-common/src/main/java/org/sunbird/sso/KeycloakRequiredActionLinkUtil.java b/core/platform-common/src/main/java/org/sunbird/sso/KeycloakRequiredActionLinkUtil.java index e47f1971a..7d7588d59 100644 --- a/core/platform-common/src/main/java/org/sunbird/sso/KeycloakRequiredActionLinkUtil.java +++ b/core/platform-common/src/main/java/org/sunbird/sso/KeycloakRequiredActionLinkUtil.java @@ -94,7 +94,7 @@ public class KeycloakRequiredActionLinkUtil { + "realms/" + ProjectUtil.getConfigValue(JsonKey.SUNBIRD_SSO_RELAM) + SUNBIRD_KEYCLOAK_REQD_ACTION_LINK; - String response = HttpClientUtil.post(url, mapper.writeValueAsString(request), headers); + String response = HttpClientUtil.post(url, mapper.writeValueAsString(request), headers, context); logger.info(context, "KeycloakRequiredActionLinkUtil:generateLink: Response = " + response); diff --git a/core/platform-common/src/main/java/org/sunbird/sso/KeycloakUtil.java b/core/platform-common/src/main/java/org/sunbird/sso/KeycloakUtil.java index acff3cdd9..fcf16cf97 100644 --- a/core/platform-common/src/main/java/org/sunbird/sso/KeycloakUtil.java +++ b/core/platform-common/src/main/java/org/sunbird/sso/KeycloakUtil.java @@ -24,7 +24,7 @@ public class KeycloakUtil { fields.put("client_secret", ProjectUtil.getConfigValue(JsonKey.SUNBIRD_SSO_CLIENT_SECRET)); fields.put("grant_type", "client_credentials"); - String response = HttpClientUtil.postFormData(url, fields, headers); + String response = HttpClientUtil.postFormData(url, fields, headers, context); logger.debug(context, "KeycloakUtil:getAdminAccessToken: Response = " + response); Map<String, Object> responseMap = new ObjectMapper().readValue(response, Map.class); return (String) responseMap.get("access_token"); diff --git a/core/platform-common/src/main/java/org/sunbird/url/URLShortner.java b/core/platform-common/src/main/java/org/sunbird/url/URLShortner.java index 6bf16fae6..eac3f7bcf 100644 --- a/core/platform-common/src/main/java/org/sunbird/url/URLShortner.java +++ b/core/platform-common/src/main/java/org/sunbird/url/URLShortner.java @@ -1,6 +1,8 @@ package org.sunbird.url; +import org.sunbird.request.RequestContext; + public interface URLShortner { - public String shortUrl(String url); + public String shortUrl(String url, RequestContext context); } diff --git a/core/platform-common/src/main/java/org/sunbird/url/URLShortnerImpl.java b/core/platform-common/src/main/java/org/sunbird/url/URLShortnerImpl.java index d0b365b25..f748a5fc1 100644 --- a/core/platform-common/src/main/java/org/sunbird/url/URLShortnerImpl.java +++ b/core/platform-common/src/main/java/org/sunbird/url/URLShortnerImpl.java @@ -8,6 +8,7 @@ import org.apache.commons.lang3.StringUtils; import org.sunbird.http.HttpClientUtil; import org.sunbird.keys.JsonKey; import org.sunbird.logging.LoggerUtil; +import org.sunbird.request.RequestContext; import org.sunbird.util.ProjectUtil; import org.sunbird.util.PropertiesCache; @@ -19,12 +20,12 @@ public class URLShortnerImpl implements URLShortner { private static final String SUNBIRD_WEB_URL = "sunbird_web_url"; @Override - public String shortUrl(String url) { + public String shortUrl(String url, RequestContext context) { boolean flag = false; try { flag = Boolean.parseBoolean(ProjectUtil.getConfigValue(JsonKey.SUNBIRD_URL_SHORTNER_ENABLE)); } catch (Exception ex) { - logger.error("Exception occurred while parsing sunbird_url_shortner_enable key", ex); + logger.error(context,"Exception occurred while parsing sunbird_url_shortner_enable key", ex); } if (flag) { String baseUrl = PropertiesCache.getInstance().getProperty("sunbird_url_shortner_base_url"); @@ -34,7 +35,7 @@ public class URLShortnerImpl implements URLShortner { PropertiesCache.getInstance().getProperty("sunbird_url_shortner_access_token"); } String requestURL = baseUrl + accessToken + "&longUrl=" + url; - String response = HttpClientUtil.get(requestURL, null); + String response = HttpClientUtil.get(requestURL, null, context); ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = null; if (!StringUtils.isBlank(response)) { @@ -43,7 +44,7 @@ public class URLShortnerImpl implements URLShortner { Map<String, String> dataMap = (Map<String, String>) map.get("data"); return dataMap.get("url"); } catch (IOException | ClassCastException e) { - logger.error("Exception occurred while parsing " + e.getMessage(), e); + logger.error(context,"Exception occurred while parsing " + e.getMessage(), e); } } } @@ -51,13 +52,13 @@ public class URLShortnerImpl implements URLShortner { } /** @return the url */ - public String getUrl() { + public String getUrl(RequestContext context) { if (StringUtils.isBlank(resUrl)) { String webUrl = System.getenv(SUNBIRD_WEB_URL); if (StringUtils.isBlank(webUrl)) { webUrl = PropertiesCache.getInstance().getProperty(SUNBIRD_WEB_URL); } - return shortUrl(webUrl); + return shortUrl(webUrl, context); } else { return resUrl; } diff --git a/core/platform-common/src/test/java/org/sunbird/http/HttpClientUtilTest.java b/core/platform-common/src/test/java/org/sunbird/http/HttpClientUtilTest.java index 832853f46..e267fb056 100644 --- a/core/platform-common/src/test/java/org/sunbird/http/HttpClientUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/http/HttpClientUtilTest.java @@ -25,6 +25,7 @@ import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; +import org.sunbird.request.RequestContext; @RunWith(PowerMockRunner.class) @PowerMockIgnore({ @@ -72,7 +73,7 @@ public class HttpClientUtilTest { PowerMockito.when(EntityUtils.toByteArray(Mockito.any(HttpEntity.class))).thenReturn(bytes); PowerMockito.when(httpclient.execute(Mockito.any(HttpGet.class))).thenReturn(response); HttpClientUtil.getInstance(); - String res = HttpClientUtil.get("http://localhost:80/user/read", headers()); + String res = HttpClientUtil.get("http://localhost:80/user/read", headers(), null); assertNotNull(res); } @@ -96,7 +97,7 @@ public class HttpClientUtilTest { HttpClientUtil.getInstance(); String res = HttpClientUtil.post( - "http://localhost:80/user/read", "{\"message\":\"success\"}", headers()); + "http://localhost:80/user/read", "{\"message\":\"success\"}", headers(), null); assertNotNull(res); } @@ -120,7 +121,7 @@ public class HttpClientUtilTest { Map<String, String> fields = new HashMap<>(); fields.put("message", "success"); HttpClientUtil.getInstance(); - String res = HttpClientUtil.postFormData("http://localhost:80/user/read", fields, headers()); + String res = HttpClientUtil.postFormData("http://localhost:80/user/read", fields, headers(), null); assertNotNull(res); } @@ -144,7 +145,7 @@ public class HttpClientUtilTest { HttpClientUtil.getInstance(); String res = HttpClientUtil.patch( - "http://localhost:80/user/read", "{\"message\":\"success\"}", headers()); + "http://localhost:80/user/read", "{\"message\":\"success\"}", headers(), null); assertNotNull(res); } @@ -166,7 +167,7 @@ public class HttpClientUtilTest { PowerMockito.when(EntityUtils.toByteArray(Mockito.any(HttpEntity.class))).thenReturn(bytes); PowerMockito.when(httpclient.execute(Mockito.any(HttpPatch.class))).thenReturn(response); HttpClientUtil.getInstance(); - String res = HttpClientUtil.delete("http://localhost:80/user/read", headers()); + String res = HttpClientUtil.delete("http://localhost:80/user/read", headers(), null); assertNotNull(res); } } diff --git a/core/platform-common/src/test/java/org/sunbird/sso/KeycloakBruteForceAttackUtilTest.java b/core/platform-common/src/test/java/org/sunbird/sso/KeycloakBruteForceAttackUtilTest.java index 5a1f97baf..3633de151 100644 --- a/core/platform-common/src/test/java/org/sunbird/sso/KeycloakBruteForceAttackUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/sso/KeycloakBruteForceAttackUtilTest.java @@ -34,9 +34,9 @@ public class KeycloakBruteForceAttackUtilTest { when(ProjectUtil.getConfigValue(Mockito.anyString())).thenReturn("anyString"); when(KeycloakUtil.getAdminAccessTokenWithoutDomain(Mockito.any(RequestContext.class))) .thenReturn("accessToken"); - when(HttpClientUtil.get(Mockito.anyString(), Mockito.anyMap())) + when(HttpClientUtil.get(Mockito.anyString(), Mockito.anyMap(), Mockito.any(RequestContext.class))) .thenReturn("{\"disabled\":true}"); - when(HttpClientUtil.delete(Mockito.anyString(), Mockito.anyMap())).thenReturn(""); + when(HttpClientUtil.delete(Mockito.anyString(), Mockito.anyMap(),Mockito.any(RequestContext.class))).thenReturn(""); } @Test diff --git a/core/platform-common/src/test/java/org/sunbird/sso/KeycloakUtilTest.java b/core/platform-common/src/test/java/org/sunbird/sso/KeycloakUtilTest.java index baf7e219e..7f0d24b10 100644 --- a/core/platform-common/src/test/java/org/sunbird/sso/KeycloakUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/sso/KeycloakUtilTest.java @@ -29,7 +29,7 @@ public class KeycloakUtilTest { public void setup() { PowerMockito.mockStatic(HttpClientUtil.class); PowerMockito.mockStatic(ProjectUtil.class); - when(HttpClientUtil.postFormData(Mockito.anyString(), Mockito.anyMap(), Mockito.anyMap())) + when(HttpClientUtil.postFormData(Mockito.anyString(), Mockito.anyMap(), Mockito.anyMap(), Mockito.any(RequestContext.class))) .thenReturn("{\"access_token\":\"accesstoken\"}"); when(ProjectUtil.getConfigValue(Mockito.anyString())).thenReturn("anyString"); } diff --git a/core/platform-common/src/test/java/org/sunbird/url/URLShortnerImplTest.java b/core/platform-common/src/test/java/org/sunbird/url/URLShortnerImplTest.java index 98c4f939a..7292f0c96 100644 --- a/core/platform-common/src/test/java/org/sunbird/url/URLShortnerImplTest.java +++ b/core/platform-common/src/test/java/org/sunbird/url/URLShortnerImplTest.java @@ -35,7 +35,7 @@ public class URLShortnerImplTest { @Test public void urlShortTest() { URLShortner shortner = new URLShortnerImpl(); - String url = shortner.shortUrl("https://staging.open-sunbird.org/"); + String url = shortner.shortUrl("https://staging.open-sunbird.org/", null); Assert.assertNotNull(url); } @@ -50,7 +50,7 @@ public class URLShortnerImplTest { } URLShortnerImpl shortnerImpl = new URLShortnerImpl(); - String url = shortnerImpl.getUrl(); + String url = shortnerImpl.getUrl(null); Assert.assertEquals(url, webUrl); } } diff --git a/core/platform-common/src/test/java/org/sunbird/util/ProjectUtilTest.java b/core/platform-common/src/test/java/org/sunbird/util/ProjectUtilTest.java index 6c2bee6ba..31b7db1a9 100644 --- a/core/platform-common/src/test/java/org/sunbird/util/ProjectUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/util/ProjectUtilTest.java @@ -378,16 +378,6 @@ public class ProjectUtilTest extends BaseHttpTest { assertTrue(bool); } - @Test - public void testSendGetRequestSuccessWithEkStepBaseUrl() throws Exception { - String ekStepBaseUrl = System.getenv(JsonKey.EKSTEP_BASE_URL); - if (StringUtils.isBlank(ekStepBaseUrl)) { - ekStepBaseUrl = PropertiesCache.getInstance().getProperty(JsonKey.EKSTEP_BASE_URL); - } - String response = HttpClientUtil.get(ekStepBaseUrl + "/search/health", headers); - assertNotNull(response); - } - @Test public void testGetLmsUserIdSuccessWithoutFedUserId() { String userid = ProjectUtil.getLmsUserId("1234567890"); diff --git a/service/src/main/java/org/sunbird/actor/notification/BackGroundNotificationActor.java b/service/src/main/java/org/sunbird/actor/notification/BackGroundNotificationActor.java index aae6e1971..ae5151fc4 100644 --- a/service/src/main/java/org/sunbird/actor/notification/BackGroundNotificationActor.java +++ b/service/src/main/java/org/sunbird/actor/notification/BackGroundNotificationActor.java @@ -43,7 +43,7 @@ public class BackGroundNotificationActor extends BaseActor { headers.put("Content-type", "application/json"); headers.put("requestId", reqObj.getRequestId()); ProjectUtil.setTraceIdInHeader(headers, reqObj.getRequestContext()); - String response = HttpClientUtil.post(NOTIFICATION_SERVICE_URL, json, headers); + String response = HttpClientUtil.post(NOTIFICATION_SERVICE_URL, json, headers, reqObj.getRequestContext()); logger.info( reqObj.getRequestContext(), "BackGroundNotificationActor:callNotificationService :: Response =" + response); diff --git a/service/src/main/java/org/sunbird/actor/organisation/OrganisationBackgroundActor.java b/service/src/main/java/org/sunbird/actor/organisation/OrganisationBackgroundActor.java index 37d7df019..d7c4e3356 100644 --- a/service/src/main/java/org/sunbird/actor/organisation/OrganisationBackgroundActor.java +++ b/service/src/main/java/org/sunbird/actor/organisation/OrganisationBackgroundActor.java @@ -84,7 +84,8 @@ public class OrganisationBackgroundActor extends BaseActor { + "/" + tagId, body, - header); + header, + context); logger.info( context, "OrganisationBackgroundActor:registertag ,call end with id and status = " diff --git a/service/src/main/java/org/sunbird/service/organisation/impl/OrgServiceImpl.java b/service/src/main/java/org/sunbird/service/organisation/impl/OrgServiceImpl.java index ca56e14f0..b7d4d5e03 100644 --- a/service/src/main/java/org/sunbird/service/organisation/impl/OrgServiceImpl.java +++ b/service/src/main/java/org/sunbird/service/organisation/impl/OrgServiceImpl.java @@ -171,7 +171,8 @@ public class OrgServiceImpl implements OrgService { (ekStepBaseUrl + PropertiesCache.getInstance().getProperty(JsonKey.EKSTEP_CHANNEL_REG_API_URL)), reqString, - headerMap); + headerMap, + context); logger.info(context, "end call for channel registration for org id ==" + req.get(JsonKey.ID)); } catch (Exception e) { logger.error( @@ -229,7 +230,8 @@ public class OrgServiceImpl implements OrgService { + "/" + req.get(JsonKey.ID), reqString, - headerMap); + headerMap, + context); logger.info( context, "end call for channel update for org id ==" + req.get(JsonKey.HASHTAGID)); } catch (Exception e) { diff --git a/service/src/main/java/org/sunbird/service/user/ResetPasswordService.java b/service/src/main/java/org/sunbird/service/user/ResetPasswordService.java index acd3133d2..fb5b42352 100644 --- a/service/src/main/java/org/sunbird/service/user/ResetPasswordService.java +++ b/service/src/main/java/org/sunbird/service/user/ResetPasswordService.java @@ -32,8 +32,8 @@ public class ResetPasswordService { context); templateMap.put( - JsonKey.SET_PASSWORD_LINK, isUrlShortRequired ? urlShortner.shortUrl(url) : url); - return isUrlShortRequired ? urlShortner.shortUrl(url) : url; + JsonKey.SET_PASSWORD_LINK, isUrlShortRequired ? urlShortner.shortUrl(url,context) : url); + return isUrlShortRequired ? urlShortner.shortUrl(url, context) : url; } else { String url = @@ -43,8 +43,8 @@ public class ResetPasswordService { KeycloakRequiredActionLinkUtil.VERIFY_EMAIL, context); templateMap.put( - JsonKey.VERIFY_EMAIL_LINK, isUrlShortRequired ? urlShortner.shortUrl(url) : url); - return isUrlShortRequired ? urlShortner.shortUrl(url) : url; + JsonKey.VERIFY_EMAIL_LINK, isUrlShortRequired ? urlShortner.shortUrl(url, context) : url); + return isUrlShortRequired ? urlShortner.shortUrl(url, context) : url; } } diff --git a/service/src/main/java/org/sunbird/util/AdminUtilHandler.java b/service/src/main/java/org/sunbird/util/AdminUtilHandler.java index 6bfe64289..cf3659321 100644 --- a/service/src/main/java/org/sunbird/util/AdminUtilHandler.java +++ b/service/src/main/java/org/sunbird/util/AdminUtilHandler.java @@ -60,7 +60,8 @@ public class AdminUtilHandler { ProjectUtil.getConfigValue(JsonKey.ADMINUTIL_BASE_URL) + ProjectUtil.getConfigValue(JsonKey.ADMINUTIL_SIGN_ENDPOINT), body, - headers); + headers, + context); data = mapper.readValue(response, Map.class); if (MapUtils.isNotEmpty(data)) { data = (Map<String, Object>) data.get(JsonKey.RESULT); diff --git a/service/src/main/java/org/sunbird/util/FormApiUtilHandler.java b/service/src/main/java/org/sunbird/util/FormApiUtilHandler.java index 0e698bd80..0628daeb1 100644 --- a/service/src/main/java/org/sunbird/util/FormApiUtilHandler.java +++ b/service/src/main/java/org/sunbird/util/FormApiUtilHandler.java @@ -71,7 +71,8 @@ public class FormApiUtilHandler { ProjectUtil.getConfigValue(JsonKey.PORTAL_SERVICE_PORT) + ProjectUtil.getConfigValue(JsonKey.FORM_API_ENDPOINT), body, - headers); + headers, + context); if (StringUtils.isNotEmpty(response)) { data = mapper.readValue(response, Map.class); if (MapUtils.isNotEmpty(data)) { diff --git a/service/src/main/java/org/sunbird/util/contentstore/ContentStoreUtil.java b/service/src/main/java/org/sunbird/util/contentstore/ContentStoreUtil.java index bfefb08d5..34fca74a1 100644 --- a/service/src/main/java/org/sunbird/util/contentstore/ContentStoreUtil.java +++ b/service/src/main/java/org/sunbird/util/contentstore/ContentStoreUtil.java @@ -42,7 +42,7 @@ public class ContentStoreUtil { + ProjectUtil.getConfigValue(urlPath) + "/" + id; - String response = HttpClientUtil.get(requestUrl, headers); + String response = HttpClientUtil.get(requestUrl, headers, null); resultMap = mapper.readValue(response, Map.class); if (!((String) resultMap.get(JsonKey.RESPONSE_CODE)).equalsIgnoreCase(JsonKey.OK)) { diff --git a/service/src/test/java/org/sunbird/actor/organisation/OrgManagementActorTest.java b/service/src/test/java/org/sunbird/actor/organisation/OrgManagementActorTest.java index 8b79ec53b..15b30fcc4 100644 --- a/service/src/test/java/org/sunbird/actor/organisation/OrgManagementActorTest.java +++ b/service/src/test/java/org/sunbird/actor/organisation/OrgManagementActorTest.java @@ -118,7 +118,7 @@ public class OrgManagementActorTest { basicRequestData = getBasicData(); PowerMockito.mockStatic(HttpClientUtil.class); - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyMap())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(RequestContext.class))) .thenReturn("OK"); when(cassandraOperation.getAllRecords( diff --git a/service/src/test/java/org/sunbird/actor/organisation/OrganisationBackgroundActorTest.java b/service/src/test/java/org/sunbird/actor/organisation/OrganisationBackgroundActorTest.java index 4526c0480..4bbf53d94 100644 --- a/service/src/test/java/org/sunbird/actor/organisation/OrganisationBackgroundActorTest.java +++ b/service/src/test/java/org/sunbird/actor/organisation/OrganisationBackgroundActorTest.java @@ -25,6 +25,7 @@ import org.sunbird.keys.JsonKey; import org.sunbird.operations.ActorOperations; import org.sunbird.operations.OrganisationActorOperation; import org.sunbird.request.Request; +import org.sunbird.request.RequestContext; import org.sunbird.util.ProjectUtil; import org.sunbird.util.Util; import scala.concurrent.Promise; @@ -65,7 +66,7 @@ public class OrganisationBackgroundActorTest { .thenReturn("anyString"); PowerMockito.mockStatic(HttpClientUtil.class); - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.any(RequestContext.class))) .thenReturn("anyStatus"); PowerMockito.mockStatic(EsClientFactory.class); diff --git a/service/src/test/java/org/sunbird/actor/user/ResetPasswordActorTest.java b/service/src/test/java/org/sunbird/actor/user/ResetPasswordActorTest.java index ac9723982..52a332e2c 100644 --- a/service/src/test/java/org/sunbird/actor/user/ResetPasswordActorTest.java +++ b/service/src/test/java/org/sunbird/actor/user/ResetPasswordActorTest.java @@ -102,7 +102,7 @@ public class ResetPasswordActorTest { @Before public void beforeEachTest() throws Exception { PowerMockito.mockStatic(HttpClientUtil.class); - when(HttpClientUtil.post(Mockito.anyString(),Mockito.anyString(),Mockito.anyMap())).thenReturn("{\"link\":\"success\"}"); + when(HttpClientUtil.post(Mockito.anyString(),Mockito.anyString(),Mockito.anyMap(), Mockito.any())).thenReturn("{\"link\":\"success\"}"); PowerMockito.mockStatic(ServiceFactory.class); cassandraOperation = mock(CassandraOperationImpl.class); PowerMockito.when(ServiceFactory.getInstance()).thenReturn(cassandraOperation); diff --git a/service/src/test/java/org/sunbird/service/user/ResetPasswordServiceTest.java b/service/src/test/java/org/sunbird/service/user/ResetPasswordServiceTest.java index 01d9b2127..ae53f0664 100644 --- a/service/src/test/java/org/sunbird/service/user/ResetPasswordServiceTest.java +++ b/service/src/test/java/org/sunbird/service/user/ResetPasswordServiceTest.java @@ -35,7 +35,7 @@ public class ResetPasswordServiceTest { @Test public void getUserRequiredActionLinkTestForVerifyEmailLink() throws Exception { PowerMockito.mockStatic(HttpClientUtil.class); - when(HttpClientUtil.post(Mockito.anyString(),Mockito.anyString(),Mockito.anyMap())).thenReturn("{\"link\":\"success\"}"); + when(HttpClientUtil.post(Mockito.anyString(),Mockito.anyString(),Mockito.anyMap(),Mockito.any(RequestContext.class))).thenReturn("{\"link\":\"success\"}"); PowerMockito.mockStatic(KeycloakUtil.class); when(KeycloakUtil.getAdminAccessToken(Mockito.any(RequestContext.class), Mockito.anyString())) @@ -53,7 +53,7 @@ public class ResetPasswordServiceTest { @Test public void getUserRequiredActionLinkTestForResetPasswordLink() throws Exception { PowerMockito.mockStatic(HttpClientUtil.class); - when(HttpClientUtil.post(Mockito.anyString(),Mockito.anyString(),Mockito.anyMap())).thenReturn("{\"link\":\"success\"}"); + when(HttpClientUtil.post(Mockito.anyString(),Mockito.anyString(),Mockito.anyMap(),Mockito.any(RequestContext.class))).thenReturn("{\"link\":\"success\"}"); PowerMockito.mockStatic(KeycloakUtil.class); when(KeycloakUtil.getAdminAccessToken(Mockito.any(RequestContext.class), Mockito.anyString())) diff --git a/service/src/test/java/org/sunbird/util/AdminUtilHandlerTest.java b/service/src/test/java/org/sunbird/util/AdminUtilHandlerTest.java index 96854c680..1300c3058 100644 --- a/service/src/test/java/org/sunbird/util/AdminUtilHandlerTest.java +++ b/service/src/test/java/org/sunbird/util/AdminUtilHandlerTest.java @@ -20,6 +20,7 @@ import org.sunbird.http.HttpClientUtil; import org.sunbird.keys.JsonKey; import org.sunbird.model.adminutil.AdminUtilRequestData; import org.sunbird.model.adminutil.AdminUtilRequestPayload; +import org.sunbird.request.RequestContext; @RunWith(PowerMockRunner.class) @PrepareForTest({HttpClientUtil.class, AdminUtilHandlerTest.class}) @@ -51,7 +52,7 @@ public class AdminUtilHandlerTest { reqData.add(new AdminUtilRequestData("parentId", "childId1")); reqData.add(new AdminUtilRequestData("parentId", "childId2")); - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.any())) .thenReturn( "{\"id\": \"ekstep.api.am.adminutil.sign.payload\",\"ver\": \"1.0\",\"ets\":1591589862198,\"params\": {\"status\": \"successful\",\"err\": null,\"errmsg\": null,\"msgid\": \"\",\"resmsgid\": \"328749cb-45e3-4b26-aea6-b7f4b97d548b\"}, \"result\": {\"data\": [{\"parentId\": \"parentId\", \"sub\":\"childId1\",\"token\":\"encryptedtoken1\"},{\"parentId\": \"parentId\",\"sub\": \"childId2\",\"token\":\"encryptedtoken2\"}]}}"); Map<String, Object> encryptedTokenList = @@ -72,7 +73,7 @@ public class AdminUtilHandlerTest { reqData.add(new AdminUtilRequestData("parentId", "childId1")); reqData.add(new AdminUtilRequestData("parentId", "childId2")); - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.any())) .thenThrow(new RuntimeException("Exception Messsage")); try { Map<String, Object> encryptedTokenList = diff --git a/service/src/test/java/org/sunbird/util/FormApiUtilHandlerEmptyConfigTest.java b/service/src/test/java/org/sunbird/util/FormApiUtilHandlerEmptyConfigTest.java index 48d9943e2..971f2654a 100644 --- a/service/src/test/java/org/sunbird/util/FormApiUtilHandlerEmptyConfigTest.java +++ b/service/src/test/java/org/sunbird/util/FormApiUtilHandlerEmptyConfigTest.java @@ -34,7 +34,7 @@ public class FormApiUtilHandlerEmptyConfigTest { @Test public void testGetFormApiEmptyConfig() { - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.any(RequestContext.class))) .thenReturn(""); Map<String, Object> dataConfigMap = FormApiUtil.getProfileConfig("locationCode", new RequestContext()); @@ -44,7 +44,7 @@ public class FormApiUtilHandlerEmptyConfigTest { @Test public void testGetFormApiEmptyResponseConfig() { - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.any(RequestContext.class))) .thenReturn(getFormApiEmptyResponse()); Map<String, Object> dataConfigMap = FormApiUtil.getProfileConfig("locationCode", new RequestContext()); diff --git a/service/src/test/java/org/sunbird/util/FormApiUtilHandlerTest.java b/service/src/test/java/org/sunbird/util/FormApiUtilHandlerTest.java index c112b4708..1d9cb647c 100644 --- a/service/src/test/java/org/sunbird/util/FormApiUtilHandlerTest.java +++ b/service/src/test/java/org/sunbird/util/FormApiUtilHandlerTest.java @@ -47,7 +47,7 @@ public class FormApiUtilHandlerTest { @Test public void testGetFormApiConfig() { - when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())) + when(HttpClientUtil.post(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.any(RequestContext.class))) .thenReturn(getFormApiResponse()); Map<String, Object> dataConfigMap = FormApiUtil.getProfileConfig("locationCode", new RequestContext()); -- GitLab