list = searchAPIs.getPublisherAPIInfoList();
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/UserAwareAPIConsumer.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/UserAwareAPIConsumer.java
index 85214755a026..2b13bc79869f 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/UserAwareAPIConsumer.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/UserAwareAPIConsumer.java
@@ -138,7 +138,7 @@ public ApiTypeWrapper getAPIorAPIProductByUUID(String uuid, String organization)
public API getLightweightAPI(APIIdentifier identifier, String orgId) throws APIManagementException {
API api = super.getLightweightAPI(identifier, orgId);
checkVisibilityPermission(userNameWithoutChange, api.getVisibility(),
- api.getVisibleRoles());
+ api.getVisibleRoles(), api.getAccessControl(), api.getAccessControlRoles());
return api;
}
}
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/ExtendedJWTConfigurationDto.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/ExtendedJWTConfigurationDto.java
index 4da31ddface2..285b2a12b30e 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/ExtendedJWTConfigurationDto.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/ExtendedJWTConfigurationDto.java
@@ -8,6 +8,7 @@ public class ExtendedJWTConfigurationDto extends JWTConfigurationDto {
private boolean tenantBasedSigningEnabled;
private boolean enableUserClaimRetrievalFromUserStore;
private boolean isBindFederatedUserClaims;
+ private boolean isJWKSApiEnabled;
public String getClaimRetrieverImplClass() {
@@ -58,4 +59,12 @@ public void setBindFederatedUserClaims(boolean isBindFederatedUserClaims) {
this.isBindFederatedUserClaims = isBindFederatedUserClaims;
}
+
+ public boolean isJWKSApiEnabled() {
+ return isJWKSApiEnabled;
+ }
+
+ public void setJWKSApiEnabled(boolean JWKSApiEnabled) {
+ this.isJWKSApiEnabled = JWKSApiEnabled;
+ }
}
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/handlers/APIIndexingHandler.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/handlers/APIIndexingHandler.java
new file mode 100644
index 000000000000..6a02d1d8aa91
--- /dev/null
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/handlers/APIIndexingHandler.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 LLC. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.wso2.carbon.apimgt.impl.handlers;
+
+import org.wso2.carbon.registry.core.exceptions.RegistryException;
+import org.wso2.carbon.registry.core.jdbc.handlers.RequestContext;
+import org.wso2.carbon.registry.indexing.IndexingHandler;
+
+/**
+ * This is the Indexing handler to skip indexing of older API revisions
+ */
+public class APIIndexingHandler extends IndexingHandler {
+ public void put(RequestContext requestContext) throws RegistryException {
+ if (requestContext.getResourcePath().getPath().contains("/apimgt/applicationdata/apis/")) {
+ return;
+ }
+ super.put(requestContext);
+ }
+}
\ No newline at end of file
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/importexport/ImportExportConstants.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/importexport/ImportExportConstants.java
index 6aca3a4a3696..b2658c493a58 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/importexport/ImportExportConstants.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/importexport/ImportExportConstants.java
@@ -203,7 +203,7 @@ public final class ImportExportConstants {
public static final String TYPE_POLICY_SPECIFICATION = "operation_policy_specification";
- public static final String APIM_VERSION = "v4.4.0";
+ public static final String APIM_VERSION = "v4.5.0";
public static final String ENDPOINT_CONFIG = "endpointConfig";
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java
index fde4b5f08aea..3bcd9c710046 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java
@@ -7045,7 +7045,7 @@ public static DocumentBuilderFactory getSecuredDocumentBuilder() {
public static void logAuditMessage(String entityType, String entityInfo, String action, String performedBy) {
JSONObject jsonObject = new JSONObject();
- jsonObject.put("typ", entityType);
+ jsonObject.put("type", entityType);
jsonObject.put("action", action);
jsonObject.put("performedBy", performedBy);
if (entityInfo != null && !StringUtils.isBlank(entityInfo)) {
@@ -10972,4 +10972,20 @@ public static boolean getTransactionCounterEnable() {
return ServiceReferenceHolder.getInstance().getAPIManagerConfigurationService()
.getAPIManagerConfiguration().getTransactionCounterProperties();
}
+
+ /**
+ * Checks if organization-wide application updates are enabled.
+ *
+ * This method retrieves the value of the system property defined by
+ * ORGANIZATION_WIDE_APPLICATION_UPDATE_ENABLED.
+ * If the property is not set, it returns false by default.
+ *
+ * @return {true} if organization-wide application updates are enabled;
+ * {false} otherwise.
+ */
+ public static Boolean isOrgWideAppUpdateEnabled() {
+
+ return Boolean.getBoolean(
+ APIConstants.ORGANIZATION_WIDE_APPLICATION_UPDATE_ENABLED);
+ }
}
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/APIProviderImplTest.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/APIProviderImplTest.java
index 87b99d361bc0..e691ed9c62d3 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/APIProviderImplTest.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/APIProviderImplTest.java
@@ -1657,9 +1657,7 @@ public void testSearchPaginatedAPIsByFQDNWithCorrectInputs() throws APIManagemen
Mockito.anyString(),
Mockito.anyInt(),
Mockito.anyInt(),
- Mockito.any(UserContext.class),
- Mockito.anyString(),
- Mockito.anyString())).thenReturn(returnSearchAPIs);
+ Mockito.any(UserContext.class))).thenReturn(returnSearchAPIs);
APIProviderImplWrapper apiProvider = new APIProviderImplWrapper(apiPersistenceInstance, apimgtDAO, scopesDAO);
@@ -1692,9 +1690,7 @@ public void testSearchPaginatedAPIsByFQDNWhenSearchResultIsNull() throws APIMana
Mockito.anyString(),
Mockito.anyInt(),
Mockito.anyInt(),
- Mockito.any(UserContext.class),
- Mockito.anyString(),
- Mockito.anyString())).thenReturn(null);
+ Mockito.any(UserContext.class))).thenReturn(null);
APIProviderImplWrapper apiProvider = new APIProviderImplWrapper(apiPersistenceInstance, apimgtDAO, scopesDAO);
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerTestCase.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerTestCase.java
index 90f43248de64..0a130d890348 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerTestCase.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerTestCase.java
@@ -148,7 +148,7 @@ public void testGetAllApis() throws GovernanceException, APIManagementException,
value.setPublisherAPIInfoList(publisherAPIInfoList);
Mockito.when(apiPersistenceInstance.searchAPIsForPublisher(any(Organization.class), anyString(),
- anyInt(), anyInt(), any(UserContext.class), isNull(), isNull())).thenReturn(value);
+ anyInt(), anyInt(), any(UserContext.class))).thenReturn(value);
List apis = abstractAPIManager.getAllAPIs();
Assert.assertNotNull(apis);
Assert.assertEquals(apis.size(), 1);
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerWrapper.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerWrapper.java
index 23e3afba343d..54e714023bd5 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerWrapper.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/AbstractAPIManagerWrapper.java
@@ -133,8 +133,8 @@ public API getLightweightAPIByUUID(String uuid, String organization) throws APIM
}
@Override
- public Map searchPaginatedAPIs(String searchQuery, String organization, int start, int end,
- String sortBy, String sortOrder) throws APIManagementException {
+ public Map searchPaginatedAPIs(String searchQuery, String organization, int start, int end)
+ throws APIManagementException {
// TODO Auto-generated method stub
return null;
}
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/dao/test/APIMgtDAOTest.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/dao/test/APIMgtDAOTest.java
index d55c370503a3..94e393610ce6 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/dao/test/APIMgtDAOTest.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/java/org/wso2/carbon/apimgt/impl/dao/test/APIMgtDAOTest.java
@@ -1818,12 +1818,13 @@ public void testRetrieveAllWorkflowFromInternalReference() throws Exception {
}
/**
- * Test for getAPIRevisionDeploymentsByWorkflowStatusAndApiUUID method
- * Checks whether the API revision deployment mapping details are retrieved correctly
+ * Test for testGetAndUpdateAPIRevisionDeploymentsByWorkflowStatusAndApiUUID method
+ * Checks whether the API revision deployment mapping details are retrieved correctly and
+ * Checks whether the API revision deployment status is updated correctly
* @throws APIManagementException if an error occurs while retrieving revision deployment mapping details
*/
@Test
- public void testGetAPIRevisionDeploymentsByWorkflowStatusAndApiUUID() throws Exception {
+ public void testGetAndUpdateAPIRevisionDeploymentsByWorkflowStatusAndApiUUID() throws Exception {
String workflowStatus = "CREATED";
String apiUUID = "7af95c9d-6177-4191-ab3e-d3f6c1cdc4c2";
String revisionUUID = "821b9664-eeca-4173-9f56-3dc6d46bd6eb";
@@ -1836,24 +1837,14 @@ public void testGetAPIRevisionDeploymentsByWorkflowStatusAndApiUUID() throws Exc
Assert.assertNotNull(apiRevisionDeployment);
Assert.assertEquals(apiRevisionDeployment.getDeployment(), deployment);
Assert.assertEquals(apiRevisionDeployment.getRevisionUUID(), revisionUUID);
- }
- /**
- * Test for updateAPIRevisionDeploymentStatus method
- * Checks whether the API revision deployment status is updated correctly
- * @throws APIManagementException if an error occurs while updating revision deployment status
- */
- @Test public void testUpdateAPIRevisionDeploymentStatus() throws Exception {
- String workflowStatus = "APPROVED";
- String revisionUUID = "821b9664-eeca-4173-9f56-3dc6d46bd6eb";
- String apiId = "7af95c9d-6177-4191-ab3e-d3f6c1cdc4c2";
- String deployment = "default";
- apiMgtDAO.updateAPIRevisionDeploymentStatus(revisionUUID, workflowStatus, deployment);
- List apiRevisionDeployments = apiMgtDAO.getAPIRevisionDeploymentByApiUUID(apiId);
- Assert.assertNotNull(apiRevisionDeployments);
- APIRevisionDeployment apiRevisionDeployment = apiRevisionDeployments.get(0);
- Assert.assertNotNull(apiRevisionDeployment);
- Assert.assertEquals(org.wso2.carbon.apimgt.api.WorkflowStatus.APPROVED,apiRevisionDeployment.getStatus());
+ String workflowStatus2 = "APPROVED";
+ apiMgtDAO.updateAPIRevisionDeploymentStatus(revisionUUID, workflowStatus2, deployment);
+ List apiRevisionDeployments2 = apiMgtDAO.getAPIRevisionDeploymentByApiUUID(apiUUID);
+ Assert.assertNotNull(apiRevisionDeployments2);
+ APIRevisionDeployment apiRevisionDeployment2 = apiRevisionDeployments2.get(0);
+ Assert.assertNotNull(apiRevisionDeployment2);
+ Assert.assertEquals(org.wso2.carbon.apimgt.api.WorkflowStatus.APPROVED,apiRevisionDeployment2.getStatus());
}
@Test
diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/resources/amConfig.xml b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/resources/amConfig.xml
index 6dce25404f9e..8c0ea5fb4854 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/resources/amConfig.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/test/resources/amConfig.xml
@@ -11,6 +11,7 @@
false
+ true
NONE
diff --git a/components/apimgt/org.wso2.carbon.apimgt.internal.service/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.internal.service/pom.xml
index e34728acd0e6..b8d646c1cb7f 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.internal.service/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.internal.service/pom.xml
@@ -20,7 +20,7 @@
org.wso2.carbon.apimgt
apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
diff --git a/components/apimgt/org.wso2.carbon.apimgt.jms.listener/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.jms.listener/pom.xml
index 6e679c2214d3..590f6e0d2a09 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.jms.listener/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.jms.listener/pom.xml
@@ -4,7 +4,7 @@
org.wso2.carbon.apimgt
apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
4.0.0
diff --git a/components/apimgt/org.wso2.carbon.apimgt.keymgt.client/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.keymgt.client/pom.xml
index 4f4fdd567daf..d1cbb4230007 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.keymgt.client/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.keymgt.client/pom.xml
@@ -16,7 +16,7 @@
org.wso2.carbon.apimgt
apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
diff --git a/components/apimgt/org.wso2.carbon.apimgt.keymgt/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.keymgt/pom.xml
index 4ac282692de2..4d21f716bb63 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.keymgt/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.keymgt/pom.xml
@@ -16,7 +16,7 @@
org.wso2.carbon.apimgt
apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
diff --git a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/AbstractKeyValidationHandler.java b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/AbstractKeyValidationHandler.java
index e22562c825be..72b7fc1321ba 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/AbstractKeyValidationHandler.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/AbstractKeyValidationHandler.java
@@ -200,7 +200,7 @@ public APIKeyValidationInfoDTO validateSubscription(String apiContext, String ap
}
@Override
- public APIKeyValidationInfoDTO validateSubscription(String apiContext, String apiVersion, int appId) {
+ public APIKeyValidationInfoDTO validateSubscription(String apiContext, String apiVersion, int appId, String keyType) {
APIKeyValidationInfoDTO apiKeyValidationInfoDTO = new APIKeyValidationInfoDTO();
if (log.isDebugEnabled()) {
@@ -208,7 +208,7 @@ public APIKeyValidationInfoDTO validateSubscription(String apiContext, String ap
log.debug("Validation Info : { context : " + apiContext + " , " + "version : "
+ apiVersion + " , appId : " + appId + " }");
}
- validateSubscriptionDetails(apiContext, apiVersion, appId, apiKeyValidationInfoDTO);
+ validateSubscriptionDetails(apiContext, apiVersion, appId, apiKeyValidationInfoDTO, keyType);
if (log.isDebugEnabled()) {
log.debug("After validating subscriptions");
}
@@ -230,7 +230,7 @@ private boolean validateSubscriptionDetails(String context, String version, Stri
private boolean validateSubscriptionDetails(String context, String version, int appId,
- APIKeyValidationInfoDTO infoDTO) {
+ APIKeyValidationInfoDTO infoDTO, String keyType) {
// Check if the api version has been prefixed with _default_
if (version != null && version.startsWith(APIConstants.DEFAULT_VERSION_PREFIX)) {
@@ -238,7 +238,7 @@ private boolean validateSubscriptionDetails(String context, String version, int
version = version.split(APIConstants.DEFAULT_VERSION_PREFIX)[1];
}
- validateSubscriptionDetails(infoDTO, context, version, appId);
+ validateSubscriptionDetails(infoDTO, context, version, appId, keyType);
return infoDTO.isAuthorized();
}
@@ -326,7 +326,7 @@ private APIKeyValidationInfoDTO validateSubscriptionDetails(APIKeyValidationInfo
}
private APIKeyValidationInfoDTO validateSubscriptionDetails(APIKeyValidationInfoDTO infoDTO, String context,
- String version, int appId) {
+ String version, int appId, String keyType) {
String apiTenantDomain = MultitenantUtils.getTenantDomainFromRequestURL(context);
if (apiTenantDomain == null) {
apiTenantDomain = MultitenantConstants.SUPER_TENANT_DOMAIN_NAME;
@@ -367,7 +367,7 @@ private APIKeyValidationInfoDTO validateSubscriptionDetails(APIKeyValidationInfo
}
if (api != null && sub != null) {
- validate(infoDTO, apiTenantDomain, tenantId, datastore, api, app, sub);
+ validate(infoDTO, apiTenantDomain, tenantId, datastore, api, app, sub, keyType);
} else if (!infoDTO.isAuthorized() && infoDTO.getValidationStatus() == 0) {
//Scenario where validation failed and message is not set
infoDTO.setValidationStatus(APIConstants.KeyValidationStatus.API_AUTH_RESOURCE_FORBIDDEN);
@@ -657,9 +657,8 @@ private APIKeyValidationInfoDTO validate(APIKeyValidationInfoDTO infoDTO, String
private APIKeyValidationInfoDTO validate(APIKeyValidationInfoDTO infoDTO, String apiTenantDomain, int tenantId,
- SubscriptionDataStore datastore, API api, Application app, Subscription sub) {
+ SubscriptionDataStore datastore, API api, Application app, Subscription sub, String keyType) {
String subscriptionStatus = sub.getSubscriptionState();
- String type = app.getTokenType();
if (APIConstants.SubscriptionStatus.BLOCKED.equals(subscriptionStatus)) {
infoDTO.setValidationStatus(APIConstants.KeyValidationStatus.API_BLOCKED);
infoDTO.setAuthorized(false);
@@ -670,9 +669,9 @@ private APIKeyValidationInfoDTO validate(APIKeyValidationInfoDTO infoDTO, String
infoDTO.setAuthorized(false);
return infoDTO;
} else if (APIConstants.SubscriptionStatus.PROD_ONLY_BLOCKED.equals(subscriptionStatus)
- && !APIConstants.API_KEY_TYPE_SANDBOX.equals(type)) {
+ && !APIConstants.API_KEY_TYPE_SANDBOX.equals(keyType)) {
infoDTO.setValidationStatus(APIConstants.KeyValidationStatus.API_BLOCKED);
- infoDTO.setType(type);
+ infoDTO.setType(keyType);
infoDTO.setAuthorized(false);
return infoDTO;
}
@@ -687,7 +686,7 @@ private APIKeyValidationInfoDTO validate(APIKeyValidationInfoDTO infoDTO, String
infoDTO.setApplicationUUID(app.getUUID());
infoDTO.setApplicationGroupIds(app.getGroupIds().stream().map(GroupId::getGroupId).collect(Collectors.toSet()));
infoDTO.setAppAttributes(app.getAttributes());
- infoDTO.setType(type);
+ infoDTO.setType(keyType);
// Advanced Level Throttling Related Properties
String apiTier = api.getApiTier();
diff --git a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/KeyValidationHandler.java b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/KeyValidationHandler.java
index 362afe5a46f5..f94a87df88be 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/KeyValidationHandler.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/handlers/KeyValidationHandler.java
@@ -54,7 +54,7 @@ boolean validateSubscription(TokenValidationContext tokenValidationContext)
* @param appId
* @return APIKeyValidationInfoDTO instance containing key validation data
*/
- APIKeyValidationInfoDTO validateSubscription(String apiContext, String apiVersion, int appId);
+ APIKeyValidationInfoDTO validateSubscription(String apiContext, String apiVersion, int appId, String keyType);
/**
* Validate Scopes by oAuth2TokenValidationMessageContext
diff --git a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/service/APIKeyValidationService.java b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/service/APIKeyValidationService.java
index cca9b3b76195..cd5a3d2ce8c3 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/service/APIKeyValidationService.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/main/java/org/wso2/carbon/apimgt/keymgt/service/APIKeyValidationService.java
@@ -507,11 +507,11 @@ public boolean validateScopes(TokenValidationContext tokenValidationContext, Str
* @throws APIManagementException in case of APIM Component initialization failure
*/
public APIKeyValidationInfoDTO validateSubscription(String context, String version, int appId,
- String tenantDomain)
+ String tenantDomain, String keyType)
throws APIKeyMgtException, APIManagementException {
KeyValidationHandler keyValidationHandler =
ServiceReferenceHolder.getInstance().getKeyValidationHandler(tenantDomain);
- return keyValidationHandler.validateSubscription(context, version, appId);
+ return keyValidationHandler.validateSubscription(context, version, appId, keyType);
}
public Map retrieveScopes(String tenantDomain) {
diff --git a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/test/resources/amConfig.xml b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/test/resources/amConfig.xml
index aa5617ef824f..12a3dedbdfcb 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/test/resources/amConfig.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.keymgt/src/test/resources/amConfig.xml
@@ -11,6 +11,7 @@
true
+ true
NONE
false
diff --git a/components/apimgt/org.wso2.carbon.apimgt.notification/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.notification/pom.xml
index 353763099a57..de54c72cbf88 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.notification/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.notification/pom.xml
@@ -19,7 +19,7 @@
apimgt
org.wso2.carbon.apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
org.wso2.carbon.apimgt.notification
4.0.0
diff --git a/components/apimgt/org.wso2.carbon.apimgt.output.adapter.http/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.output.adapter.http/pom.xml
index e514df67f331..da6e11318950 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.output.adapter.http/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.output.adapter.http/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.apimgt
apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
diff --git a/components/apimgt/org.wso2.carbon.apimgt.persistence/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.persistence/pom.xml
index a04071ce90af..649b3d902d15 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.persistence/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.persistence/pom.xml
@@ -3,7 +3,7 @@
apimgt
org.wso2.carbon.apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
4.0.0
diff --git a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/APIPersistence.java b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/APIPersistence.java
index 63592cd946d8..9bb6851d7554 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/APIPersistence.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/APIPersistence.java
@@ -170,13 +170,11 @@ void deleteAPIRevision(Organization org, String apiUUID, String revisionUUID, in
* @param searchQuery search query
* @param start starting index
* @param offset offset to search
- * @param sortBy sort criteria
- * @param sortOrder sort order
* @return Publisher API Search Result
* @throws APIPersistenceException
*/
PublisherAPISearchResult searchAPIsForPublisher(Organization org, String searchQuery, int start,
- int offset, UserContext ctx, String sortBy, String sortOrder) throws APIPersistenceException;
+ int offset, UserContext ctx) throws APIPersistenceException;
/**
* Search APIs to be displayed on Dev Portal API listing
diff --git a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/RegistryPersistenceImpl.java b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/RegistryPersistenceImpl.java
index d7a8e2077193..e3d88aac6b1f 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/RegistryPersistenceImpl.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/RegistryPersistenceImpl.java
@@ -979,7 +979,7 @@ public void deleteAllAPIs(Organization org) throws APIPersistenceException {
@Override
public PublisherAPISearchResult searchAPIsForPublisher(Organization org, String searchQuery, int start, int offset,
- UserContext ctx, String sortBy, String sortOrder) throws APIPersistenceException {
+ UserContext ctx) throws APIPersistenceException {
String requestedTenantDomain = org.getName();
boolean isTenantFlowStarted = false;
@@ -2751,7 +2751,7 @@ public Mediation getMediationPolicy(Organization org, String apiId, String media
int prependIndex = apiPath.lastIndexOf("/api");
String apiResourcePath = apiPath.substring(0, prependIndex);
String policyPath = GovernanceUtils.getArtifactPath(registry, mediationPolicyId);
- if (!policyPath.startsWith(apiResourcePath)) {
+ if (!policyPath.toLowerCase().startsWith(apiResourcePath.toLowerCase())) {
throw new MediationPolicyPersistenceException("Policy not foud ", ExceptionCodes.POLICY_NOT_FOUND);
}
Resource mediationResource = registry.get(policyPath);
diff --git a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/dto/DevPortalAPI.java b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/dto/DevPortalAPI.java
index 956ab6313028..9db22f4078e0 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/dto/DevPortalAPI.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/dto/DevPortalAPI.java
@@ -65,6 +65,8 @@ public class DevPortalAPI extends DevPortalAPIInfo {
private String visibleRoles;
private String gatewayVendor;
private String asyncTransportProtocols;
+ private String publisherAccessControl;
+ private String publisherAccessControlRoles;
public String getContextTemplate() {
return contextTemplate;
@@ -390,7 +392,22 @@ public String getVisibility() {
public void setVisibility(String visibility) {
this.visibility = visibility;
}
-
+
+ public String getPublisherAccessControl() {
+ return publisherAccessControl;
+ }
+
+ public void setPublisherAccessControl(String publisherAccessControl) {
+ this.publisherAccessControl = publisherAccessControl;
+ }
+
+ public String getPublisherAccessControlRoles() {
+ return publisherAccessControlRoles;
+ }
+
+ public void setPublisherAccessControlRoles(String publisherAccessControlRoles) {
+ this.publisherAccessControlRoles = publisherAccessControlRoles;
+ }
/*
private String accessControl; //publisher accessControl : 'restricted', 'all' // this won't be required
diff --git a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/mapper/APIMapper.java b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/mapper/APIMapper.java
index 1222c3c8e271..1d0a2e63d4ee 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/mapper/APIMapper.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.persistence/src/main/java/org/wso2/carbon/apimgt/persistence/mapper/APIMapper.java
@@ -110,6 +110,8 @@ public interface APIMapper {
//@Mapping(source = "visibleTenants", target = "visibleOrganizations")
@Mapping(source = "subscriptionAvailableTenants", target = "subscriptionAvailableOrgs")
//@Mapping(source = "environmentList", target = "environments")
+ @Mapping(source = "accessControl", target = "publisherAccessControl")
+ @Mapping(source = "accessControlRoles", target = "publisherAccessControlRoles")
DevPortalAPI toDevPortalApi(API api);
//@Mapping(source = "providerName", target = "id.providerName")
diff --git a/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/pom.xml b/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/pom.xml
index 148c5b23b90f..27404726dd6b 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/pom.xml
+++ b/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/pom.xml
@@ -20,7 +20,7 @@
org.wso2.carbon.apimgt
apimgt
- 9.30.83-SNAPSHOT
+ 9.30.101-SNAPSHOT
../pom.xml
diff --git a/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/admin/v1/impl/ApisApiServiceImpl.java b/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/admin/v1/impl/ApisApiServiceImpl.java
index 2d45e4bfc516..e0fb22302e7e 100644
--- a/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/admin/v1/impl/ApisApiServiceImpl.java
+++ b/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/admin/v1/impl/ApisApiServiceImpl.java
@@ -66,8 +66,7 @@ public Response getAllAPIs(Integer limit, Integer offset, String query, String i
query = query == null ? APIConstants.CHAR_ASTERIX : query;
APIProvider apiProvider = RestApiCommonUtil.getLoggedInUserProvider();
String organization = RestApiUtil.getOrganization(messageContext);
- Map result = apiProvider.searchPaginatedAPIs(query, organization, offset, limit,
- RestApiConstants.DEFAULT_SORT_BY, RestApiConstants.DEFAULT_SORT_ORDER);
+ Map result = apiProvider.searchPaginatedAPIs(query, organization, offset, limit);
List