From 2d51e89402675d3730cd6103b4eaf70ccd1cb790 Mon Sep 17 00:00:00 2001 From: Ravi Shanigarapu Date: Thu, 22 May 2025 18:25:18 +0530 Subject: [PATCH 1/4] jwttoken and user-agent validation --- .../service/IMRMMR/IMRMMRServiceImpl.java | 13 ++---- .../balVivah/BalVivahComplaintImpl.java | 8 +--- .../EpidemicOutbreakServiceImpl.java | 8 +--- .../service/feedback/FeedbackServiceImpl.java | 8 +--- .../FoodSafetyCopmlaintServiceImpl.java | 10 ++--- .../iemr/helpline104/utils/CookieUtil.java | 5 ++- .../utils/JwtUserIdValidationFilter.java | 34 +++++++++------ .../helpline104/utils/RestTemplateUtil.java | 42 +++++++++++++++++++ .../helpline104/utils/UserAgentContext.java | 18 ++++++++ .../AuthorizationHeaderRequestWrapper.java | 42 +++++++++++++++++++ .../utils/http/HTTPRequestInterceptor.java | 4 ++ 11 files changed, 144 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java create mode 100644 src/main/java/com/iemr/helpline104/utils/UserAgentContext.java create mode 100644 src/main/java/com/iemr/helpline104/utils/http/AuthorizationHeaderRequestWrapper.java diff --git a/src/main/java/com/iemr/helpline104/service/IMRMMR/IMRMMRServiceImpl.java b/src/main/java/com/iemr/helpline104/service/IMRMMR/IMRMMRServiceImpl.java index f28056b..f146894 100644 --- a/src/main/java/com/iemr/helpline104/service/IMRMMR/IMRMMRServiceImpl.java +++ b/src/main/java/com/iemr/helpline104/service/IMRMMR/IMRMMRServiceImpl.java @@ -67,6 +67,7 @@ import com.iemr.helpline104.reposotory.IMRMMR.IMRMMRRepository; import com.iemr.helpline104.sms.SmsRequestOBJ; import com.iemr.helpline104.utils.CookieUtil; +import com.iemr.helpline104.utils.RestTemplateUtil; import com.iemr.helpline104.utils.mapper.InputMapper; import jakarta.servlet.http.HttpServletRequest; @@ -198,11 +199,7 @@ public void createEmailGateway(String emailID, String requestID, String Authoriz emailReqObj.put("requestID", requestID); emailReqObj.put("emailType", IMRMMREmailTemplate); emailReqObj.put("emailID", emailID); - HttpServletRequest requestHeader = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) - .getRequest(); - String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(requestHeader); - MultiValueMap headers = new LinkedMultiValueMap(); - headers.add("Cookie", "Jwttoken=" + jwtTokenFromCookie); + try { String emailStatus = restTemplate(new Gson().toJson(emailReqObj), sendEmailGeneralUrl, Authorization); if (emailStatus != null) { @@ -283,11 +280,7 @@ public String createSMSRequest(String smsType, Long benRegID, Integer stateID, S } public String restTemplate(String request, String url, String Authorization) { - HttpHeaders headers = new HttpHeaders(); - headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); - headers.set("AUTHORIZATION", Authorization); - - HttpEntity requestOBJ = new HttpEntity(request, headers); + HttpEntity requestOBJ = RestTemplateUtil.createRequestEntity(request, Authorization); RestTemplate restTemplate = new RestTemplate(); return restTemplate.exchange(url, HttpMethod.POST, requestOBJ, String.class).getBody(); } diff --git a/src/main/java/com/iemr/helpline104/service/balVivah/BalVivahComplaintImpl.java b/src/main/java/com/iemr/helpline104/service/balVivah/BalVivahComplaintImpl.java index 3bfee5e..f652f9a 100644 --- a/src/main/java/com/iemr/helpline104/service/balVivah/BalVivahComplaintImpl.java +++ b/src/main/java/com/iemr/helpline104/service/balVivah/BalVivahComplaintImpl.java @@ -60,6 +60,7 @@ import com.iemr.helpline104.repository.location.LocationDistrictBlockRepository; import com.iemr.helpline104.repository.location.LocationDistrictRepository; import com.iemr.helpline104.utils.CookieUtil; +import com.iemr.helpline104.utils.RestTemplateUtil; import com.iemr.helpline104.utils.config.ConfigProperties; import com.iemr.helpline104.utils.exception.IEMRException; import com.iemr.helpline104.utils.http.HttpUtils; @@ -193,13 +194,8 @@ else if (phoneNo != null) { private OutputResponse createFeedback(String feedbackDetails, HttpServletRequest request) throws IEMRException, JsonMappingException, JsonProcessingException { RestTemplate restTemplate = new RestTemplate(); ObjectMapper objectMapper = new ObjectMapper(); - String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(request); - MultiValueMap headers = new LinkedMultiValueMap(); - headers.add("Content-Type", "application/json"); - headers.add("AUTHORIZATION", request.getHeader("Authorization")); - headers.add("Jwttoken", jwtTokenFromCookie); String url = properties.getPropertyByName("common-url") + "/" + properties.getPropertyByName("create-feedback"); - HttpEntity request1 = new HttpEntity(feedbackDetails, headers); + HttpEntity request1 = RestTemplateUtil.createRequestEntity(feedbackDetails, request.getHeader("Authorization")); ResponseEntity responseStr = restTemplate.exchange(url, HttpMethod.POST, request1, String.class); OutputResponse response = objectMapper.readValue(responseStr.getBody(), OutputResponse.class); diff --git a/src/main/java/com/iemr/helpline104/service/epidemicOutbreak/EpidemicOutbreakServiceImpl.java b/src/main/java/com/iemr/helpline104/service/epidemicOutbreak/EpidemicOutbreakServiceImpl.java index ea3ef03..715a750 100644 --- a/src/main/java/com/iemr/helpline104/service/epidemicOutbreak/EpidemicOutbreakServiceImpl.java +++ b/src/main/java/com/iemr/helpline104/service/epidemicOutbreak/EpidemicOutbreakServiceImpl.java @@ -57,6 +57,7 @@ import com.iemr.helpline104.repository.location.LocationDistrictBlockRepository; import com.iemr.helpline104.repository.location.LocationDistrictRepository; import com.iemr.helpline104.utils.CookieUtil; +import com.iemr.helpline104.utils.RestTemplateUtil; import com.iemr.helpline104.utils.config.ConfigProperties; import com.iemr.helpline104.utils.exception.IEMRException; import com.iemr.helpline104.utils.http.HttpUtils; @@ -189,13 +190,8 @@ else if (requestID != null) { private OutputResponse createFeedback(String feedbackDetails, HttpServletRequest request) throws IEMRException, JsonMappingException, JsonProcessingException { RestTemplate restTemplate = new RestTemplate(); ObjectMapper objectMapper = new ObjectMapper(); - String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(request); - MultiValueMap headers = new LinkedMultiValueMap(); - headers.add("Content-Type", "application/json"); - headers.add("AUTHORIZATION", request.getHeader("Authorization")); - headers.add("Jwttoken", jwtTokenFromCookie); String url = properties.getPropertyByName("common-url") + "/" + properties.getPropertyByName("create-feedback"); - HttpEntity request1 = new HttpEntity(feedbackDetails, headers); + HttpEntity request1 = RestTemplateUtil.createRequestEntity(feedbackDetails, request.getHeader("Authorization")); ResponseEntity responseStr = restTemplate.exchange(url, HttpMethod.POST, request1, String.class); OutputResponse response = objectMapper.readValue(responseStr.getBody(), OutputResponse.class); return response; diff --git a/src/main/java/com/iemr/helpline104/service/feedback/FeedbackServiceImpl.java b/src/main/java/com/iemr/helpline104/service/feedback/FeedbackServiceImpl.java index 0bcacd2..a173c41 100644 --- a/src/main/java/com/iemr/helpline104/service/feedback/FeedbackServiceImpl.java +++ b/src/main/java/com/iemr/helpline104/service/feedback/FeedbackServiceImpl.java @@ -52,6 +52,7 @@ import com.iemr.helpline104.repository.feedback.FeedbackRepository; import com.iemr.helpline104.repository.feedbackType.FeedbackTypeRepository; import com.iemr.helpline104.utils.CookieUtil; +import com.iemr.helpline104.utils.RestTemplateUtil; import com.iemr.helpline104.utils.config.ConfigProperties; import com.iemr.helpline104.utils.exception.IEMRException; import com.iemr.helpline104.utils.http.HttpUtils; @@ -334,13 +335,8 @@ private OutputResponse createFeedback(String feedbackDetails, HttpServletRequest logger.info("createFeedback request: " + feedbackDetails); RestTemplate restTemplate = new RestTemplate(); ObjectMapper objectMapper = new ObjectMapper(); - String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(request); - MultiValueMap headers = new LinkedMultiValueMap(); - headers.add("Content-Type", "application/json"); - headers.add("AUTHORIZATION", request.getHeader("Authorization")); - headers.add("Jwttoken", jwtTokenFromCookie); String url = properties.getPropertyByName("common-url") + "/" + properties.getPropertyByName("create-feedback"); - HttpEntity request1 = new HttpEntity(feedbackDetails, headers); + HttpEntity request1 = RestTemplateUtil.createRequestEntity(feedbackDetails, request.getHeader("Authorization")); ResponseEntity responseStr = restTemplate.exchange(url, HttpMethod.POST, request1, String.class); OutputResponse response = objectMapper.readValue(responseStr.getBody(), OutputResponse.class); logger.info("createFeedback resonse from common: " + response); diff --git a/src/main/java/com/iemr/helpline104/service/foodSafetyCopmlaint/FoodSafetyCopmlaintServiceImpl.java b/src/main/java/com/iemr/helpline104/service/foodSafetyCopmlaint/FoodSafetyCopmlaintServiceImpl.java index 3f27bbf..3fb8e11 100644 --- a/src/main/java/com/iemr/helpline104/service/foodSafetyCopmlaint/FoodSafetyCopmlaintServiceImpl.java +++ b/src/main/java/com/iemr/helpline104/service/foodSafetyCopmlaint/FoodSafetyCopmlaintServiceImpl.java @@ -52,6 +52,7 @@ import com.iemr.helpline104.repository.feedbackType.FeedbackTypeRepository; import com.iemr.helpline104.repository.foodSafetyCopmlaint.FoodSafetyCopmlaintRepository; import com.iemr.helpline104.utils.CookieUtil; +import com.iemr.helpline104.utils.RestTemplateUtil; import com.iemr.helpline104.utils.config.ConfigProperties; import com.iemr.helpline104.utils.exception.IEMRException; import com.iemr.helpline104.utils.http.HttpUtils; @@ -209,13 +210,10 @@ public T_FoodSafetyCopmlaint save(T_FoodSafetyCopmlaint t_foodSafetyCopmlaint, H private OutputResponse createFeedback(String feedbackDetails, HttpServletRequest request) throws IEMRException, JsonMappingException, JsonProcessingException { RestTemplate restTemplate = new RestTemplate(); ObjectMapper objectMapper = new ObjectMapper(); - String jwtTokenFromCookie = cookieUtil.getJwtTokenFromCookie(request); - MultiValueMap headers = new LinkedMultiValueMap(); - headers.add("Content-Type", "application/json"); - headers.add("AUTHORIZATION", request.getHeader("Authorization")); - headers.add("Jwttoken", jwtTokenFromCookie); + String url = properties.getPropertyByName("common-url") + "/" + properties.getPropertyByName("create-feedback"); - HttpEntity request1 = new HttpEntity(feedbackDetails, headers); + HttpEntity request1 = RestTemplateUtil.createRequestEntity(feedbackDetails, request.getHeader("Authorization")); + ResponseEntity responseStr = restTemplate.exchange(url, HttpMethod.POST, request1, String.class); OutputResponse response = objectMapper.readValue(responseStr.getBody(), OutputResponse.class); return response; diff --git a/src/main/java/com/iemr/helpline104/utils/CookieUtil.java b/src/main/java/com/iemr/helpline104/utils/CookieUtil.java index a5a19a3..364c83a 100644 --- a/src/main/java/com/iemr/helpline104/utils/CookieUtil.java +++ b/src/main/java/com/iemr/helpline104/utils/CookieUtil.java @@ -24,7 +24,10 @@ public Optional getCookieValue(HttpServletRequest request, String cookie return Optional.empty(); } - public String getJwtTokenFromCookie(HttpServletRequest request) { + public static String getJwtTokenFromCookie(HttpServletRequest request) { + if (request.getCookies() == null) { + return null; // If cookies are null, return null safely. + } return Arrays.stream(request.getCookies()).filter(cookie -> "Jwttoken".equals(cookie.getName())) .map(Cookie::getValue).findFirst().orElse(null); } diff --git a/src/main/java/com/iemr/helpline104/utils/JwtUserIdValidationFilter.java b/src/main/java/com/iemr/helpline104/utils/JwtUserIdValidationFilter.java index fc36ff9..24d49f0 100644 --- a/src/main/java/com/iemr/helpline104/utils/JwtUserIdValidationFilter.java +++ b/src/main/java/com/iemr/helpline104/utils/JwtUserIdValidationFilter.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import com.iemr.helpline104.utils.http.AuthorizationHeaderRequestWrapper; import jakarta.servlet.Filter; import jakarta.servlet.FilterChain; @@ -74,29 +75,36 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo if (jwtFromCookie != null) { logger.info("Validating JWT token from cookie"); if (jwtAuthenticationUtil.validateUserIdAndJwtToken(jwtFromCookie)) { - filterChain.doFilter(servletRequest, servletResponse); + AuthorizationHeaderRequestWrapper authorizationHeaderRequestWrapper = new AuthorizationHeaderRequestWrapper( + request, ""); + filterChain.doFilter(authorizationHeaderRequestWrapper, servletResponse); return; } - } - - if (jwtFromHeader != null) { + } else if (jwtFromHeader != null) { logger.info("Validating JWT token from header"); if (jwtAuthenticationUtil.validateUserIdAndJwtToken(jwtFromHeader)) { - filterChain.doFilter(servletRequest, servletResponse); + AuthorizationHeaderRequestWrapper authorizationHeaderRequestWrapper = new AuthorizationHeaderRequestWrapper( + request, ""); + filterChain.doFilter(authorizationHeaderRequestWrapper, servletResponse); + return; + } + } else { + String userAgent = request.getHeader("User-Agent"); + logger.info("User-Agent: " + userAgent); + + if (userAgent != null && isMobileClient(userAgent) && authHeader != null) { + try { + UserAgentContext.setUserAgent(userAgent); + filterChain.doFilter(servletRequest, servletResponse); + } finally { + UserAgentContext.clear(); + } return; } - } - String userAgent = request.getHeader("User-Agent"); - logger.info("User-Agent: " + userAgent); - - if (userAgent != null && isMobileClient(userAgent) && authHeader != null) { - filterChain.doFilter(servletRequest, servletResponse); - return; } logger.warn("No valid authentication token found"); response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token"); - } catch (Exception e) { logger.error("Authorization error: ", e); response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Authorization error: " + e.getMessage()); diff --git a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java new file mode 100644 index 0000000..33c9909 --- /dev/null +++ b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java @@ -0,0 +1,42 @@ +package com.iemr.helpline104.utils; + +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import jakarta.servlet.http.HttpServletRequest; + +public class RestTemplateUtil { + public static HttpEntity createRequestEntity(Object body, String authorization) { + + ServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()); + if (servletRequestAttributes == null) { + MultiValueMap headers = new LinkedMultiValueMap<>(); + headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8"); + headers.add(HttpHeaders.AUTHORIZATION, authorization); + return new HttpEntity<>(body, headers); + } + HttpServletRequest requestHeader = servletRequestAttributes.getRequest(); + String jwtTokenFromCookie = null; + try { + jwtTokenFromCookie = CookieUtil.getJwtTokenFromCookie(requestHeader); + + } catch (Exception e) { + e.printStackTrace(); + } + + MultiValueMap headers = new LinkedMultiValueMap<>(); + headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8"); + headers.add(HttpHeaders.USER_AGENT, UserAgentContext.getUserAgent()); + headers.add(HttpHeaders.AUTHORIZATION, authorization); + headers.add("JwtToken",requestHeader.getHeader("JwtToken")); + headers.add(HttpHeaders.COOKIE, "Jwttoken=" + jwtTokenFromCookie); + + return new HttpEntity<>(body, headers); + } + +} diff --git a/src/main/java/com/iemr/helpline104/utils/UserAgentContext.java b/src/main/java/com/iemr/helpline104/utils/UserAgentContext.java new file mode 100644 index 0000000..3225ec1 --- /dev/null +++ b/src/main/java/com/iemr/helpline104/utils/UserAgentContext.java @@ -0,0 +1,18 @@ +package com.iemr.helpline104.utils; + +public class UserAgentContext { + private static final ThreadLocal userAgentHolder = new ThreadLocal<>(); + + public static void setUserAgent(String userAgent) { + userAgentHolder.set(userAgent); + } + + public static String getUserAgent() { + return userAgentHolder.get(); + } + + public static void clear() { + userAgentHolder.remove(); + } + +} diff --git a/src/main/java/com/iemr/helpline104/utils/http/AuthorizationHeaderRequestWrapper.java b/src/main/java/com/iemr/helpline104/utils/http/AuthorizationHeaderRequestWrapper.java new file mode 100644 index 0000000..f982e69 --- /dev/null +++ b/src/main/java/com/iemr/helpline104/utils/http/AuthorizationHeaderRequestWrapper.java @@ -0,0 +1,42 @@ +package com.iemr.helpline104.utils.http; + +import java.util.Collections; +import java.util.Enumeration; +import java.util.List; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; + +public class AuthorizationHeaderRequestWrapper extends HttpServletRequestWrapper { + private final String Authorization; + + public AuthorizationHeaderRequestWrapper(HttpServletRequest request, String authHeaderValue) { + super(request); + this.Authorization = authHeaderValue; + } + + @Override + public String getHeader(String name) { + if ("Authorization".equalsIgnoreCase(name)) { + return Authorization; + } + return super.getHeader(name); + } + + @Override + public Enumeration getHeaders(String name) { + if ("Authorization".equalsIgnoreCase(name)) { + return Collections.enumeration(Collections.singletonList(Authorization)); + } + return super.getHeaders(name); + } + + @Override + public Enumeration getHeaderNames() { + List names = Collections.list(super.getHeaderNames()); + if (!names.contains("Authorization")) { + names.add("Authorization"); + } + return Collections.enumeration(names); + } +} diff --git a/src/main/java/com/iemr/helpline104/utils/http/HTTPRequestInterceptor.java b/src/main/java/com/iemr/helpline104/utils/http/HTTPRequestInterceptor.java index 1a7bccd..6512c11 100644 --- a/src/main/java/com/iemr/helpline104/utils/http/HTTPRequestInterceptor.java +++ b/src/main/java/com/iemr/helpline104/utils/http/HTTPRequestInterceptor.java @@ -61,6 +61,10 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons boolean status = true; logger.debug("In preHandle we are Intercepting the Request"); String authorization = request.getHeader("Authorization"); + if (authorization == null || authorization.isEmpty()) { + logger.info("Authorization header is null or empty. Skipping HTTPRequestInterceptor."); + return true; // Allow the request to proceed without validation + } logger.debug("RequestURI:: {} || method :: {}", request.getRequestURI(), request.getMethod()); if (!request.getMethod().equalsIgnoreCase("OPTIONS")) { try { From 8f52336cf1ae5e28faa21b2ef369e0d875d1ae3a Mon Sep 17 00:00:00 2001 From: Ravi Shanigarapu Date: Thu, 22 May 2025 19:30:47 +0530 Subject: [PATCH 2/4] Logger added instead of printstacktrace --- .../com/iemr/helpline104/utils/RestTemplateUtil.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java index 33c9909..8795d62 100644 --- a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java +++ b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java @@ -1,5 +1,7 @@ package com.iemr.helpline104.utils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -11,6 +13,8 @@ import jakarta.servlet.http.HttpServletRequest; public class RestTemplateUtil { + private final static Logger logger = LoggerFactory.getLogger(RestTemplateUtil.class); + public static HttpEntity createRequestEntity(Object body, String authorization) { ServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()); @@ -26,7 +30,7 @@ public static HttpEntity createRequestEntity(Object body, String authori jwtTokenFromCookie = CookieUtil.getJwtTokenFromCookie(requestHeader); } catch (Exception e) { - e.printStackTrace(); + logger.error("Error while getting jwtToken from Cookie" + e.getMessage() ); } MultiValueMap headers = new LinkedMultiValueMap<>(); @@ -34,7 +38,9 @@ public static HttpEntity createRequestEntity(Object body, String authori headers.add(HttpHeaders.USER_AGENT, UserAgentContext.getUserAgent()); headers.add(HttpHeaders.AUTHORIZATION, authorization); headers.add("JwtToken",requestHeader.getHeader("JwtToken")); - headers.add(HttpHeaders.COOKIE, "Jwttoken=" + jwtTokenFromCookie); + if(null != jwtTokenFromCookie) { + headers.add(HttpHeaders.COOKIE, "Jwttoken=" + jwtTokenFromCookie); + } return new HttpEntity<>(body, headers); } From 1a4f2730ac3c1bd639395fcbed4ce57c57b49acd Mon Sep 17 00:00:00 2001 From: Ravi Shanigarapu Date: Thu, 22 May 2025 19:36:51 +0530 Subject: [PATCH 3/4] null check --- .../java/com/iemr/helpline104/utils/RestTemplateUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java index 8795d62..804361a 100644 --- a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java +++ b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java @@ -35,7 +35,9 @@ public static HttpEntity createRequestEntity(Object body, String authori MultiValueMap headers = new LinkedMultiValueMap<>(); headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8"); - headers.add(HttpHeaders.USER_AGENT, UserAgentContext.getUserAgent()); + if(null != UserAgentContext.getUserAgent()) { + headers.add(HttpHeaders.USER_AGENT, UserAgentContext.getUserAgent()); + } headers.add(HttpHeaders.AUTHORIZATION, authorization); headers.add("JwtToken",requestHeader.getHeader("JwtToken")); if(null != jwtTokenFromCookie) { From ee5ccb2b83d9f56c4f4b4df93e16ad01e65ccf59 Mon Sep 17 00:00:00 2001 From: Ravi Shanigarapu Date: Thu, 22 May 2025 19:42:23 +0530 Subject: [PATCH 4/4] null check --- src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java index 804361a..a795add 100644 --- a/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java +++ b/src/main/java/com/iemr/helpline104/utils/RestTemplateUtil.java @@ -47,4 +47,4 @@ public static HttpEntity createRequestEntity(Object body, String authori return new HttpEntity<>(body, headers); } -} +} \ No newline at end of file