From 3fcd7bceb05112487ad0eaa37ea8feec568c4511 Mon Sep 17 00:00:00 2001 From: tharikaGitHub Date: Mon, 24 Jun 2024 18:38:00 +0530 Subject: [PATCH 1/2] Fix multi group app sharing issue --- .../wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java index 6525b90a87dd..24e4146ce958 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java +++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java @@ -6251,18 +6251,16 @@ public Application getApplicationByName(String applicationName, String userId, S + " AND LOWER(SUB.USER_ID) = LOWER(?))) AND " + "APP.NAME = ? AND SUB.SUBSCRIBER_ID = APP.SUBSCRIBER_ID"; - String whereClauseWithMultiGroupId = " WHERE ((APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM " + - "AM_APPLICATION_GROUP_MAPPING WHERE GROUP_ID IN ($params) AND TENANT = ?)) OR SUB.USER_ID = ? " + + String whereClauseWithMultiGroupId = " WHERE (((APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM " + + "AM_APPLICATION_GROUP_MAPPING WHERE GROUP_ID IN ($params) AND TENANT = ?)) " + "OR (APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM AM_APPLICATION WHERE GROUP_ID = ?))) " + - "AND APP.NAME = ? AND SUB.SUBSCRIBER_ID = APP.SUBSCRIBER_ID"; + "AND SUB.USER_ID = ?) AND APP.NAME = ? AND SUB.SUBSCRIBER_ID = APP.SUBSCRIBER_ID"; String whereClauseWithMultiGroupIdCaseInSensitive = - " WHERE ((APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM " - + "AM_APPLICATION_GROUP_MAPPING WHERE GROUP_ID IN ($params) AND TENANT = ?)) " - + "OR LOWER(SUB.USER_ID) = LOWER(?) " - + "OR (APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM AM_APPLICATION WHERE GROUP_ID = " + - "?))) " - + "AND APP.NAME = ? AND SUB.SUBSCRIBER_ID = APP.SUBSCRIBER_ID"; - + " WHERE (((APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM " + + "AM_APPLICATION_GROUP_MAPPING WHERE GROUP_ID IN ($params) AND TENANT = ?)) " + + "OR (APP.APPLICATION_ID IN (SELECT APPLICATION_ID FROM AM_APPLICATION WHERE GROUP_ID = ?))) " + + "AND LOWER(SUB.USER_ID) = LOWER(?)) AND APP.NAME = ? AND SUB.SUBSCRIBER_ID = APP.SUBSCRIBER_ID"; + if (groupId != null && !"null".equals(groupId) && !groupId.isEmpty()) { if (multiGroupAppSharingEnabled) { Subscriber subscriber = getSubscriber(userId); From 6363447b0a037938cd21ba9403fb491ecfcf05b7 Mon Sep 17 00:00:00 2001 From: tharikaGitHub Date: Mon, 24 Jun 2024 19:47:25 +0530 Subject: [PATCH 2/2] Change query placeholders --- .../main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java index 24e4146ce958..46487e01080e 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java +++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dao/ApiMgtDAO.java @@ -6275,8 +6275,8 @@ public Application getApplicationByName(String applicationName, String userId, S prepStmt = fillQueryParams(connection, query, groupIds, 1); prepStmt.setString(++parameterIndex, tenantDomain); - prepStmt.setString(++parameterIndex, userId); prepStmt.setString(++parameterIndex, tenantDomain + '/' + groupId); + prepStmt.setString(++parameterIndex, userId); prepStmt.setString(++parameterIndex, applicationName); } else { if (forceCaseInsensitiveComparisons) {