mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' into 'master'
Fix session expire issue during sso authorization See merge request entgra/carbon-device-mgt!766
This commit is contained in:
commit
a136fa4901
@ -27,7 +27,6 @@ import io.entgra.ui.request.interceptor.util.HandlerUtil;
|
|||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.http.HttpHeaders;
|
import org.apache.http.HttpHeaders;
|
||||||
import org.apache.http.HttpStatus;
|
|
||||||
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpPost;
|
||||||
import org.apache.http.entity.ContentType;
|
import org.apache.http.entity.ContentType;
|
||||||
import org.apache.http.entity.StringEntity;
|
import org.apache.http.entity.StringEntity;
|
||||||
@ -50,9 +49,7 @@ public class SsoLoginCallbackHandler extends HttpServlet {
|
|||||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
|
||||||
String code = req.getParameter("code");
|
String code = req.getParameter("code");
|
||||||
HttpSession session = req.getSession(false);
|
HttpSession session = req.getSession(false);
|
||||||
String scope = session.getAttribute("scope").toString();
|
|
||||||
String iotsCorePort = System.getProperty(HandlerConstants.IOT_CORE_HTTPS_PORT_ENV_VAR);
|
String iotsCorePort = System.getProperty(HandlerConstants.IOT_CORE_HTTPS_PORT_ENV_VAR);
|
||||||
|
|
||||||
if (HandlerConstants.HTTP_PROTOCOL.equals(req.getScheme())) {
|
if (HandlerConstants.HTTP_PROTOCOL.equals(req.getScheme())) {
|
||||||
iotsCorePort = System.getProperty(HandlerConstants.IOT_CORE_HTTP_PORT_ENV_VAR);
|
iotsCorePort = System.getProperty(HandlerConstants.IOT_CORE_HTTP_PORT_ENV_VAR);
|
||||||
}
|
}
|
||||||
@ -62,6 +59,19 @@ public class SsoLoginCallbackHandler extends HttpServlet {
|
|||||||
String iotsCoreUrl = req.getScheme() + HandlerConstants.SCHEME_SEPARATOR + System.getProperty(HandlerConstants.IOT_CORE_HOST_ENV_VAR)
|
String iotsCoreUrl = req.getScheme() + HandlerConstants.SCHEME_SEPARATOR + System.getProperty(HandlerConstants.IOT_CORE_HOST_ENV_VAR)
|
||||||
+ HandlerConstants.COLON + iotsCorePort;
|
+ HandlerConstants.COLON + iotsCorePort;
|
||||||
|
|
||||||
|
if (session == null) {
|
||||||
|
String baseContextPath = req.getContextPath();
|
||||||
|
String applicationName = baseContextPath.substring(1, baseContextPath.indexOf("-ui-request-handler"));
|
||||||
|
if (applicationName.equals("entgra")) {
|
||||||
|
resp.sendRedirect(iotsCoreUrl + "/endpoint-mgt");
|
||||||
|
} else {
|
||||||
|
resp.sendRedirect(iotsCoreUrl + "/" + applicationName);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String scope = session.getAttribute("scope").toString();
|
||||||
|
|
||||||
HttpPost tokenEndpoint = new HttpPost(gatewayUrl + HandlerConstants.TOKEN_ENDPOINT);
|
HttpPost tokenEndpoint = new HttpPost(gatewayUrl + HandlerConstants.TOKEN_ENDPOINT);
|
||||||
tokenEndpoint.setHeader(HttpHeaders.AUTHORIZATION, HandlerConstants.BASIC + session.getAttribute("encodedClientApp"));
|
tokenEndpoint.setHeader(HttpHeaders.AUTHORIZATION, HandlerConstants.BASIC + session.getAttribute("encodedClientApp"));
|
||||||
tokenEndpoint.setHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_FORM_URLENCODED.toString());
|
tokenEndpoint.setHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_FORM_URLENCODED.toString());
|
||||||
@ -76,11 +86,9 @@ public class SsoLoginCallbackHandler extends HttpServlet {
|
|||||||
ProxyResponse tokenResultResponse = HandlerUtil.execute(tokenEndpoint);
|
ProxyResponse tokenResultResponse = HandlerUtil.execute(tokenEndpoint);
|
||||||
|
|
||||||
JsonParser jsonParser = new JsonParser();
|
JsonParser jsonParser = new JsonParser();
|
||||||
|
|
||||||
JsonElement jTokenResult = jsonParser.parse(tokenResultResponse.getData());
|
JsonElement jTokenResult = jsonParser.parse(tokenResultResponse.getData());
|
||||||
if (jTokenResult.isJsonObject()) {
|
if (jTokenResult.isJsonObject()) {
|
||||||
JsonObject jTokenResultAsJsonObject = jTokenResult.getAsJsonObject();
|
JsonObject jTokenResultAsJsonObject = jTokenResult.getAsJsonObject();
|
||||||
|
|
||||||
AuthData authData = new AuthData();
|
AuthData authData = new AuthData();
|
||||||
authData.setClientId(session.getAttribute("clientId").toString());
|
authData.setClientId(session.getAttribute("clientId").toString());
|
||||||
authData.setClientSecret(session.getAttribute("clientSecret").toString());
|
authData.setClientSecret(session.getAttribute("clientSecret").toString());
|
||||||
@ -89,7 +97,6 @@ public class SsoLoginCallbackHandler extends HttpServlet {
|
|||||||
authData.setRefreshToken(jTokenResultAsJsonObject.get("refresh_token").getAsString());
|
authData.setRefreshToken(jTokenResultAsJsonObject.get("refresh_token").getAsString());
|
||||||
authData.setScope(jTokenResultAsJsonObject.get("scope").getAsString());
|
authData.setScope(jTokenResultAsJsonObject.get("scope").getAsString());
|
||||||
session.setAttribute(HandlerConstants.SESSION_AUTH_DATA_KEY, authData);
|
session.setAttribute(HandlerConstants.SESSION_AUTH_DATA_KEY, authData);
|
||||||
|
|
||||||
resp.sendRedirect(session.getAttribute("redirectUrl").toString());
|
resp.sendRedirect(session.getAttribute("redirectUrl").toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,12 +88,12 @@ public class SsoLoginHandler extends HttpServlet {
|
|||||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
|
||||||
try {
|
try {
|
||||||
httpSession = req.getSession(false);
|
httpSession = req.getSession(false);
|
||||||
|
|
||||||
if (httpSession != null) {
|
if (httpSession != null) {
|
||||||
httpSession.invalidate();
|
httpSession.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
httpSession = req.getSession(true);
|
httpSession = req.getSession(true);
|
||||||
|
httpSession.setMaxInactiveInterval(Math.toIntExact(HandlerConstants.TIMEOUT));
|
||||||
initializeAdminCredentials();
|
initializeAdminCredentials();
|
||||||
baseContextPath = req.getContextPath();
|
baseContextPath = req.getContextPath();
|
||||||
applicationName = baseContextPath.substring(1, baseContextPath.indexOf("-ui-request-handler"));
|
applicationName = baseContextPath.substring(1, baseContextPath.indexOf("-ui-request-handler"));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user