diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml index a4976478b2..261f41efaa 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml @@ -154,6 +154,12 @@ org.apache.httpcomponents.client5 httpclient5 + + + org.slf4j + slf4j-api + + org.apache.httpcomponents diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/DefaultOauth2TokenHandler.java b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/DefaultOauth2TokenHandler.java index b0974a46a5..93cf1b9491 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/DefaultOauth2TokenHandler.java +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/DefaultOauth2TokenHandler.java @@ -112,7 +112,7 @@ public class DefaultOauth2TokenHandler extends HttpServlet { String defaultToken = tokenResult.get("accessToken").asText(); newDefaultAuthData.setAccessToken(defaultToken); newDefaultAuthData.setRefreshToken(tokenResult.get("refreshToken").asText()); - newDefaultAuthData.setScope(tokenResult.get("scopes").asText()); + newDefaultAuthData.setScope(tokenResult.get("scopes")); httpSession.setAttribute(HandlerConstants.SESSION_DEFAULT_AUTH_DATA_KEY, newDefaultAuthData); HandlerUtil.handleSuccess(resp, constructSuccessProxyResponse(defaultToken)); diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/LoginHandler.java b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/LoginHandler.java index 6f38a18014..d720842b71 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/LoginHandler.java +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/LoginHandler.java @@ -183,7 +183,7 @@ public class LoginHandler extends HttpServlet { authData.setEncodedClientApp(encodedClientApp); authData.setAccessToken(tokenResult.get("access_token").textValue()); authData.setRefreshToken(tokenResult.get("refresh_token").textValue()); - authData.setScope(tokenResult.get("scope").textValue()); + authData.setScope(tokenResult.get("scope")); session.setAttribute(HandlerConstants.SESSION_AUTH_DATA_KEY, authData); return true; } catch (IOException e) { diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/PermissionScopeHandler.java b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/PermissionScopeHandler.java index 623fd48b87..42b06124f8 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/PermissionScopeHandler.java +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/PermissionScopeHandler.java @@ -36,6 +36,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; +import java.util.HashMap; import java.util.Map; @MultipartConfig @@ -57,14 +58,13 @@ public class PermissionScopeHandler extends HttpServlet { return; } - if (!StringUtils.isEmpty(authData.getScope())) { + if (!StringUtils.isEmpty(authData.getScope().toString())) { ProxyResponse proxyResponse = new ProxyResponse(); + JsonNode authDataScope = authData.getScope(); ObjectMapper mapper = new ObjectMapper(); - JsonNode node = JsonNodeFactory.instance.objectNode(); - Map nodeMap = mapper.convertValue(node, new TypeReference<>() { - }); - nodeMap.put(HandlerConstants.USER_SCOPES, authData.getScope()); + Map nodeMap = new HashMap<>(); + nodeMap.put(HandlerConstants.USER_SCOPES, authDataScope); proxyResponse.setCode(HttpStatus.SC_OK); proxyResponse.setStatus(ProxyResponse.Status.SUCCESS); proxyResponse.setData(mapper.convertValue(nodeMap, JsonNode.class)); diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/SsoLoginCallbackHandler.java b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/SsoLoginCallbackHandler.java index ee2b600eb4..2acd5fc167 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/SsoLoginCallbackHandler.java +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/SsoLoginCallbackHandler.java @@ -96,7 +96,7 @@ public class SsoLoginCallbackHandler extends HttpServlet { authData.setEncodedClientApp(session.getAttribute("encodedClientApp").toString()); authData.setAccessToken(jsonNode.get("access_token").textValue()); authData.setRefreshToken(jsonNode.get("refresh_token").textValue()); - authData.setScope(jsonNode.get("scope").textValue()); + authData.setScope(jsonNode.get("scope")); session.setAttribute(HandlerConstants.SESSION_AUTH_DATA_KEY, authData); resp.sendRedirect(session.getAttribute("redirectUrl").toString()); } else { diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/beans/AuthData.java b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/beans/AuthData.java index 36cb8aea59..a0c057383c 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/beans/AuthData.java +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/beans/AuthData.java @@ -19,6 +19,8 @@ package io.entgra.device.mgt.core.ui.request.interceptor.beans; +import com.fasterxml.jackson.databind.JsonNode; + public class AuthData implements java.io.Serializable { private static final long serialVersionUID = -5156750882531944849L; @@ -29,7 +31,7 @@ public class AuthData implements java.io.Serializable { private String clientId; private String clientSecret; private String encodedClientApp; - private String scope; + private JsonNode scope; public String getAccessToken() { return accessToken; @@ -79,11 +81,11 @@ public class AuthData implements java.io.Serializable { this.encodedClientApp = encodedClientApp; } - public String getScope() { + public JsonNode getScope() { return scope; } - public void setScope(String scope) { + public void setScope(JsonNode scope) { this.scope = scope; } } diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/util/HandlerUtil.java b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/util/HandlerUtil.java index b7a4b4e51c..af1141ceed 100644 --- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/util/HandlerUtil.java +++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/src/main/java/io/entgra/device/mgt/core/ui/request/interceptor/util/HandlerUtil.java @@ -19,6 +19,7 @@ package io.entgra.device.mgt.core.ui.request.interceptor.util; import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -264,9 +265,17 @@ public class HandlerUtil { resp.setStatus(proxyResponse.getCode()); resp.setContentType(ContentType.APPLICATION_JSON.getMimeType()); resp.setCharacterEncoding(Consts.UTF_8.name()); + JsonNode responseData = proxyResponse.getData(); + + if (!(responseData == null)) { + ObjectMapper mapper = new ObjectMapper(); + Map newNodeMap = new HashMap<>(); + newNodeMap.put("data", responseData); + responseData = mapper.convertValue(newNodeMap, JsonNode.class); + } try (PrintWriter writer = resp.getWriter()) { - writer.write(proxyResponse.getData().toString()); + writer.write(responseData != null ? responseData.toString() : "{}"); } } @@ -665,7 +674,7 @@ public class HandlerUtil { AuthData newAuthData = new AuthData(); newAuthData.setAccessToken(tokenResult.get("access_token").textValue()); newAuthData.setRefreshToken(tokenResult.get("refresh_token").textValue()); - newAuthData.setScope(tokenResult.get("scope").textValue()); + newAuthData.setScope(tokenResult.get("scope")); newAuthData.setClientId(authData.getClientId()); newAuthData.setClientSecret(authData.getClientSecret()); newAuthData.setEncodedClientApp(authData.getEncodedClientApp());