From 62635cea09c4fcfeb3d7dea276c2254a66b481dc Mon Sep 17 00:00:00 2001 From: MDeLuise <66636702+MDeLuise@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:06:20 +0200 Subject: [PATCH] fix: add input validation to KapuaConfigurableServiceBase Added validation for scopeId and configValues in KapuaConfigurableServiceBase to prevent NullPointerExceptions. Ensured configValues is checked for null and emptiness. --- .../KapuaConfigurableServiceBase.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java b/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java index 7bde1b1f5e4..daebf7f0cf0 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java @@ -12,7 +12,11 @@ *******************************************************************************/ package org.eclipse.kapua.commons.configuration; +import java.util.Map; +import java.util.Optional; + import org.eclipse.kapua.KapuaException; +import org.eclipse.kapua.commons.util.ArgumentValidator; import org.eclipse.kapua.model.config.metatype.KapuaTocd; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; @@ -22,9 +26,6 @@ import org.eclipse.kapua.service.config.KapuaConfigurableService; import org.eclipse.kapua.storage.TxManager; -import java.util.Map; -import java.util.Optional; - /** * Base {@link KapuaConfigurableService} implementation, build upon {@link ServiceConfigurationManager}. *

@@ -60,11 +61,17 @@ public KapuaConfigurableServiceBase( @Override public boolean isServiceEnabled(KapuaId scopeId) throws KapuaException { + // Argument Validation + ArgumentValidator.notNull(scopeId, "scopeId"); + return txManager.execute(tx -> serviceConfigurationManager.isServiceEnabled(tx, scopeId)); } @Override public KapuaTocd getConfigMetadata(KapuaId scopeId) throws KapuaException { + // Argument Validation + ArgumentValidator.notNull(scopeId, "scopeId"); + // Check access authorizationService.checkPermission(permissionFactory.newPermission(domain, Actions.read, scopeId)); return txManager.execute(tx -> serviceConfigurationManager.getConfigMetadata(tx, scopeId, true)); @@ -72,6 +79,9 @@ public KapuaTocd getConfigMetadata(KapuaId scopeId) throws KapuaException { @Override public Map getConfigValues(KapuaId scopeId) throws KapuaException { + // Argument Validation + ArgumentValidator.notNull(scopeId, "scopeId"); + // Check access authorizationService.checkPermission(permissionFactory.newPermission(domain, Actions.read, scopeId)); @@ -80,6 +90,10 @@ public Map getConfigValues(KapuaId scopeId) throws KapuaExceptio @Override public void setConfigValues(KapuaId scopeId, KapuaId parentId, Map values) throws KapuaException { + // Argument Validation + ArgumentValidator.notNull(scopeId, "scopeId"); + ArgumentValidator.notNull(values, "values"); + authorizationService.checkPermission(permissionFactory.newPermission(domain, Actions.write, scopeId)); txManager.execute(tx -> {