aboutsummaryrefslogtreecommitdiffstats
path: root/certService/src/main/java/org/onap/aaf
diff options
context:
space:
mode:
authorawudzins <adam.wudzinski@nokia.com>2020-03-03 14:51:21 +0100
committerawudzins <adam.wudzinski@nokia.com>2020-03-04 13:44:52 +0100
commit09128196b16368651e8fa2a20140216e086700f2 (patch)
treef66c560d95b2140448b7414c1a34b7d0594cd9a5 /certService/src/main/java/org/onap/aaf
parent552f87238fbc04b63a992645217dcfded40cb122 (diff)
Fix reload endpoint to return status
Signed-off-by: Adam Wudzinski <adam.wudzinski@nokia.com> Issue-ID: AAF-997 wChange-Id: I4563428ef407b4dc8c84c3efc8ec213145806b32 Change-Id: Iee33a26feb5cc1acd39d91ee9f34a49183040e06
Diffstat (limited to 'certService/src/main/java/org/onap/aaf')
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/api/CertificationController.java (renamed from certService/src/main/java/org/onap/aaf/certservice/api/CertificationService.java)7
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/api/ReloadConfigController.java58
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java41
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoader.java19
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoadingException.java32
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Authentication.java3
-rw-r--r--certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Cmpv2Server.java8
7 files changed, 133 insertions, 35 deletions
diff --git a/certService/src/main/java/org/onap/aaf/certservice/api/CertificationService.java b/certService/src/main/java/org/onap/aaf/certservice/api/CertificationController.java
index 945fc6d1..e663909c 100644
--- a/certService/src/main/java/org/onap/aaf/certservice/api/CertificationService.java
+++ b/certService/src/main/java/org/onap/aaf/certservice/api/CertificationController.java
@@ -39,15 +39,15 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
-public class CertificationService {
+public class CertificationController {
- private static final Logger LOGGER = LoggerFactory.getLogger(CertificationService.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(CertificationController.class);
private final CsrModelFactory csrModelFactory;
private final CertificationModelFactory certificationModelFactory;
@Autowired
- CertificationService(CsrModelFactory csrModelFactory, CertificationModelFactory certificationModelFactory) {
+ CertificationController(CsrModelFactory csrModelFactory, CertificationModelFactory certificationModelFactory) {
this.csrModelFactory = csrModelFactory;
this.certificationModelFactory = certificationModelFactory;
}
@@ -81,5 +81,4 @@ public class CertificationService {
}
-
}
diff --git a/certService/src/main/java/org/onap/aaf/certservice/api/ReloadConfigController.java b/certService/src/main/java/org/onap/aaf/certservice/api/ReloadConfigController.java
new file mode 100644
index 00000000..5390a00c
--- /dev/null
+++ b/certService/src/main/java/org/onap/aaf/certservice/api/ReloadConfigController.java
@@ -0,0 +1,58 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * Copyright (C) 2020 Nokia. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aaf.certservice.api;
+
+import org.onap.aaf.certservice.certification.configuration.CmpServersConfig;
+import org.onap.aaf.certservice.certification.configuration.CmpServersConfigLoadingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class ReloadConfigController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ReloadConfigController.class);
+
+ private final CmpServersConfig cmpServersConfig;
+
+ @Autowired
+ public ReloadConfigController(CmpServersConfig cmpServersConfig) {
+ this.cmpServersConfig = cmpServersConfig;
+ }
+
+ @GetMapping("/reload")
+ public ResponseEntity<String> reloadConfiguration() throws CmpServersConfigLoadingException {
+ cmpServersConfig.reloadConfiguration();
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @ExceptionHandler(value = CmpServersConfigLoadingException.class)
+ public ResponseEntity<String> handle(CmpServersConfigLoadingException exception) {
+ LOGGER.error(exception.getMessage(), exception.getCause());
+ return new ResponseEntity<>(exception.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+}
diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java
index 25e69251..a304b5a6 100644
--- a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java
+++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java
@@ -20,34 +20,31 @@
package org.onap.aaf.certservice.certification.configuration;
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+import javax.annotation.PostConstruct;
import org.onap.aaf.certservice.certification.configuration.model.Cmpv2Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.cloud.context.config.annotation.RefreshScope;
-import org.springframework.cloud.context.scope.refresh.RefreshScopeRefreshedEvent;
import org.springframework.context.annotation.Configuration;
-import javax.annotation.PostConstruct;
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-import org.springframework.context.event.EventListener;
-
@Configuration
public class CmpServersConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(CmpServersConfig.class);
+ private static final String LOADING_SUCCESS_MESSAGE = "CMP Servers configuration successfully loaded from file {}";
private static final String CMP_SERVERS_CONFIG_FILENAME = "cmpServers.json";
+ private static final String INIT_CONFIGURATION = "Loading initial configuration";
private static final String REFRESHING_CONFIGURATION = "Refreshing configuration";
- private String configPath;
- private List<Cmpv2Server> cmpServers;
+ private final String configPath;
private final CmpServersConfigLoader cmpServersConfigLoader;
+ private List<Cmpv2Server> cmpServers;
+
@Autowired
public CmpServersConfig(@Value("${app.config.path}") String configPath,
CmpServersConfigLoader cmpServersConfigLoader) {
@@ -56,18 +53,28 @@ public class CmpServersConfig {
}
@PostConstruct
- void loadConfiguration() {
- String configFilePath = configPath + File.separator + CMP_SERVERS_CONFIG_FILENAME;
- this.cmpServers = Collections.unmodifiableList(cmpServersConfigLoader.load(configFilePath));
+ void init() {
+ LOGGER.info(INIT_CONFIGURATION);
+ try {
+ loadConfiguration();
+ } catch (CmpServersConfigLoadingException e) {
+ LOGGER.error(e.getMessage(), e.getCause());
+ }
}
- @EventListener
- public void onRefreshScope(final RefreshScopeRefreshedEvent event) {
+ public void reloadConfiguration() throws CmpServersConfigLoadingException {
LOGGER.info(REFRESHING_CONFIGURATION);
loadConfiguration();
}
+ void loadConfiguration() throws CmpServersConfigLoadingException {
+ String configFilePath = configPath + File.separator + CMP_SERVERS_CONFIG_FILENAME;
+ this.cmpServers = Collections.unmodifiableList(cmpServersConfigLoader.load(configFilePath));
+ LOGGER.info(LOADING_SUCCESS_MESSAGE, configFilePath);
+ }
+
public List<Cmpv2Server> getCmpServers() {
return cmpServers;
}
+
}
diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoader.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoader.java
index 94530100..1072d630 100644
--- a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoader.java
+++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoader.java
@@ -24,20 +24,18 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.security.InvalidParameterException;
-import java.util.ArrayList;
import java.util.List;
import org.onap.aaf.certservice.certification.configuration.model.CmpServers;
import org.onap.aaf.certservice.certification.configuration.model.Cmpv2Server;
import org.onap.aaf.certservice.certification.configuration.validation.Cmpv2ServerConfigurationValidator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
class CmpServersConfigLoader {
- private static final Logger LOGGER = LoggerFactory.getLogger(CmpServersConfigLoader.class);
+ private static final String LOADING_EXCEPTION_MESSAGE = "Exception occurred during CMP Servers configuration loading";
+ private static final String VALIDATION_EXCEPTION_MESSAGE = "Validation of CMPv2 servers configuration failed";
private final Cmpv2ServerConfigurationValidator validator;
@@ -46,19 +44,16 @@ class CmpServersConfigLoader {
this.validator = validator;
}
- List<Cmpv2Server> load(String path) {
- List<Cmpv2Server> servers = new ArrayList<>();
+ List<Cmpv2Server> load(String path) throws CmpServersConfigLoadingException {
try {
- servers = loadConfigFromFile(path).getCmpv2Servers();
+ List<Cmpv2Server> servers = loadConfigFromFile(path).getCmpv2Servers();
servers.forEach(validator::validate);
- LOGGER.info("CMP Servers configuration successfully loaded from file {}", path);
+ return servers;
} catch (IOException e) {
- LOGGER.error("Exception occurred during CMP Servers configuration loading: ", e);
+ throw new CmpServersConfigLoadingException(LOADING_EXCEPTION_MESSAGE, e);
} catch (InvalidParameterException e) {
- LOGGER.error("Validation of CMPv2 servers configuration failed:", e);
+ throw new CmpServersConfigLoadingException(VALIDATION_EXCEPTION_MESSAGE, e);
}
-
- return servers;
}
private CmpServers loadConfigFromFile(String path) throws IOException {
diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoadingException.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoadingException.java
new file mode 100644
index 00000000..b7c3638d
--- /dev/null
+++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfigLoadingException.java
@@ -0,0 +1,32 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * Copyright (C) 2020 Nokia. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aaf.certservice.certification.configuration;
+
+public class CmpServersConfigLoadingException extends Exception {
+
+ public CmpServersConfigLoadingException(String message) {
+ super(message);
+ }
+
+ public CmpServersConfigLoadingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Authentication.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Authentication.java
index af254d61..3785cf8e 100644
--- a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Authentication.java
+++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Authentication.java
@@ -20,12 +20,15 @@
package org.onap.aaf.certservice.certification.configuration.model;
+import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
public class Authentication {
+ @NotNull
@Length(min = 1, max = 256)
private String iak;
+ @NotNull
@Length(min = 1, max = 256)
private String rv;
diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Cmpv2Server.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Cmpv2Server.java
index 9f8f9796..20b83b82 100644
--- a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Cmpv2Server.java
+++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/model/Cmpv2Server.java
@@ -20,19 +20,23 @@
package org.onap.aaf.certservice.certification.configuration.model;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
import org.bouncycastle.asn1.x500.X500Name;
import org.hibernate.validator.constraints.Length;
import org.onap.aaf.certservice.certification.configuration.validation.constraints.Cmpv2URL;
-import javax.validation.Valid;
-
public class Cmpv2Server {
+ @NotNull
@Valid
private Authentication authentication;
+ @NotNull
private CaMode caMode;
+ @NotNull
@Length(min = 1, max = 128)
private String caName;
+ @NotNull
private X500Name issuerDN;
@Cmpv2URL
private String url;