From 3f3fe1cbc352eba18fd08af84d566556e738b7bc Mon Sep 17 00:00:00 2001 From: Bohdan Khablenko Date: Mon, 11 Apr 2016 09:25:40 +0300 Subject: [PATCH] KAA-876: Device management (#584) * KAA-876: Trustful credentials service implementation * KAA-876: Fix the Admin UI * KAA-876: Add the ability to change the credentials service used for an application * KAA-876: Add aliases for credentials services * KAA-876: Fix the application service to allow credentials service updates --- .../kaa/server/common/dao/CredentialsService.java | 2 ++ .../common/dao/service/ApplicationServiceImpl.java | 3 ++- .../common/dao/src/main/resources/common-dao-context.xml | 2 ++ .../admin/client/mvp/activity/ApplicationActivity.java | 6 +----- .../credentials/DefaultCredentialsServiceLocator.java | 9 +++------ 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/CredentialsService.java b/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/CredentialsService.java index 52e8beaba6..4d4edbac98 100644 --- a/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/CredentialsService.java +++ b/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/CredentialsService.java @@ -57,6 +57,8 @@ public interface CredentialsService { * @param credentialsId The credentials ID * * @return The credentials with the given ID + * + * @throws CredentialsServiceException - if an unexpected exception occures. */ Optional lookupCredentials(String applicationId, String credentialsId) throws CredentialsServiceException; diff --git a/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/service/ApplicationServiceImpl.java b/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/service/ApplicationServiceImpl.java index 76d73b4cec..af2ab1c4d3 100644 --- a/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/service/ApplicationServiceImpl.java +++ b/server/common/dao/src/main/java/org/kaaproject/kaa/server/common/dao/service/ApplicationServiceImpl.java @@ -25,6 +25,7 @@ import static org.kaaproject.kaa.server.common.dao.service.Validator.isValidSqlObject; import java.util.List; +import java.util.Objects; import org.apache.commons.lang.RandomStringUtils; import org.kaaproject.kaa.common.Constants; @@ -162,7 +163,7 @@ public ApplicationDto saveApp(ApplicationDto applicationDto) { throw new IncorrectParameterException("Can't save/update application with null name"); } Application checkApplication = applicationDao.findByNameAndTenantId(applicationDto.getName(), applicationDto.getTenantId()); - if (checkApplication != null) { + if (checkApplication != null && !Objects.equals(checkApplication.getStringId(), applicationDto.getId())) { throw new IncorrectParameterException("Can't save application with same name within one tenant"); } if (isNotBlank(applicationDto.getId())) { diff --git a/server/common/dao/src/main/resources/common-dao-context.xml b/server/common/dao/src/main/resources/common-dao-context.xml index f1e0e8f3ce..f5588c7b74 100644 --- a/server/common/dao/src/main/resources/common-dao-context.xml +++ b/server/common/dao/src/main/resources/common-dao-context.xml @@ -95,7 +95,9 @@ + + diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ApplicationActivity.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ApplicationActivity.java index 3d2d43a5ee..3ba5e07c32 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ApplicationActivity.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ApplicationActivity.java @@ -95,11 +95,7 @@ public void onSuccess(List result) { ApplicationActivity.this.detailsView.getCredentialsServiceName().setAcceptableValues(result); } }); - String serviceName = this.entity.getCredentialsServiceName(); - if (!"".equals(serviceName) && serviceName != null) { - serviceNames.setValue(serviceName); - serviceNames.setEnabled(false); - } + serviceNames.setValue(this.entity.getCredentialsServiceName()); } } diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/node/service/credentials/DefaultCredentialsServiceLocator.java b/server/node/src/main/java/org/kaaproject/kaa/server/node/service/credentials/DefaultCredentialsServiceLocator.java index ea87a5e7c5..34f413223b 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/node/service/credentials/DefaultCredentialsServiceLocator.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/node/service/credentials/DefaultCredentialsServiceLocator.java @@ -16,10 +16,9 @@ package org.kaaproject.kaa.server.node.service.credentials; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; @@ -56,8 +55,8 @@ public final class DefaultCredentialsServiceLocator implements CredentialsServic public CredentialsService getCredentialsService(String applicationId) { String serviceName = this.applicationService.findAppById(applicationId).getCredentialsServiceName(); if (StringUtils.isBlank(serviceName)) { - LOG.debug("No credentials service configured for application [{}], using [{}]", applicationId, serviceName); serviceName = DEFAULT_CREDENTIALS_SERVICE_NAME; + LOG.debug("No credentials service configured for application [{}], using [{}]", applicationId, serviceName); } CredentialsServiceLocator locator = credentialsServiceLocatorMap.get(serviceName); if (locator == null) { @@ -69,8 +68,6 @@ public CredentialsService getCredentialsService(String applicationId) { @Override public List getCredentialsServiceNames() { - List result = new ArrayList<>(credentialsServiceLocatorMap.keySet()); - Collections.sort(result); - return result; + return this.credentialsServiceLocatorMap.keySet().stream().sorted().collect(Collectors.toList()); } }