summaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/utils
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/utils')
-rw-r--r--common/src/main/java/org/openecomp/mso/utils/CheckResults.java118
-rw-r--r--common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java95
-rw-r--r--common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java76
3 files changed, 289 insertions, 0 deletions
diff --git a/common/src/main/java/org/openecomp/mso/utils/CheckResults.java b/common/src/main/java/org/openecomp/mso/utils/CheckResults.java
new file mode 100644
index 0000000000..3e77a4c808
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/utils/CheckResults.java
@@ -0,0 +1,118 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. 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.openecomp.mso.utils;
+
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement(name = "checkresults")
+public class CheckResults {
+
+ @XmlElement(name = "checkresult")
+ private List <CheckResult> results;
+
+ public CheckResults () {
+ results = new ArrayList <CheckResult> ();
+ }
+
+ public List <CheckResult> getResults () {
+ return results;
+ }
+
+ public void addHostCheckResult (String hostname, int state, String output) {
+ CheckResult newResult = new CheckResult ();
+ newResult.setType ("host");
+ newResult.setHostname (hostname);
+ newResult.setState (state);
+ newResult.setOutput (output);
+ results.add (newResult);
+ }
+
+ public void addServiceCheckResult (String hostname, String servicename, int state, String output) {
+ CheckResult newResult = new CheckResult ();
+ newResult.setType ("service");
+ newResult.setHostname (hostname);
+ newResult.setServicename (servicename);
+ newResult.setState (state);
+ newResult.setOutput (output);
+ results.add (newResult);
+ }
+
+ public static class CheckResult {
+
+ private String type;
+ private String hostname;
+ private String servicename;
+ private int state;
+ private String output;
+
+ @XmlAttribute(required = true)
+ public String getType () {
+ return type;
+ }
+
+ public void setType (String type) {
+ this.type = type;
+ }
+
+ @XmlElement(required = true)
+ public String getHostname () {
+ return hostname;
+ }
+
+ public void setHostname (String hostname) {
+ this.hostname = hostname;
+ }
+
+ @XmlElement(required = false)
+ public String getServicename () {
+ return servicename;
+ }
+
+ public void setServicename (String servicename) {
+ this.servicename = servicename;
+ }
+
+ @XmlElement(required = true)
+ public int getState () {
+ return state;
+ }
+
+ public void setState (int state) {
+ this.state = state;
+ }
+
+ @XmlElement(required = true)
+ public String getOutput () {
+ return output;
+ }
+
+ public void setOutput (String output) {
+ this.output = output;
+ }
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java b/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java
new file mode 100644
index 0000000000..c926903cf3
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java
@@ -0,0 +1,95 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. 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.openecomp.mso.utils;
+
+
+
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+
+/**
+ * CryptoUtils adapted from RTTP client.
+ *
+ */
+public final class CryptoUtils {
+
+ public static final String AES = "AES";
+
+ /**
+ * encrypt a value and generate a keyfile
+ * if the keyfile is not found then a new one is created
+ *
+ * @throws GeneralSecurityException
+ */
+ public static String encrypt (String value, String keyString) throws GeneralSecurityException {
+ SecretKeySpec sks = getSecretKeySpec (keyString);
+ Cipher cipher = Cipher.getInstance (CryptoUtils.AES);
+ cipher.init (Cipher.ENCRYPT_MODE, sks, cipher.getParameters ());
+ byte[] encrypted = cipher.doFinal (value.getBytes ());
+ return byteArrayToHexString (encrypted);
+ }
+
+ /**
+ * decrypt a value
+ *
+ * @throws GeneralSecurityException
+ */
+ public static String decrypt (String message, String keyString) throws GeneralSecurityException {
+ SecretKeySpec sks = getSecretKeySpec (keyString);
+ Cipher cipher = Cipher.getInstance (CryptoUtils.AES);
+ cipher.init (Cipher.DECRYPT_MODE, sks);
+ byte[] decrypted = cipher.doFinal (hexStringToByteArray (message));
+ return new String (decrypted);
+ }
+
+ private static SecretKeySpec getSecretKeySpec (String keyString) throws NoSuchAlgorithmException {
+ byte[] key = hexStringToByteArray (keyString);
+ SecretKeySpec sks = new SecretKeySpec (key, CryptoUtils.AES);
+ return sks;
+ }
+
+ public static String byteArrayToHexString (byte[] b) {
+ StringBuffer sb = new StringBuffer (b.length * 2);
+ for (int i = 0; i < b.length; i++) {
+ int v = b[i] & 0xff;
+ if (v < 16) {
+ sb.append ('0');
+ }
+ sb.append (Integer.toHexString (v));
+ }
+ return sb.toString ().toUpperCase ();
+ }
+
+ private static byte[] hexStringToByteArray (String s) {
+ byte[] b = new byte[s.length () / 2];
+ for (int i = 0; i < b.length; i++) {
+ int index = i * 2;
+ int v = Integer.parseInt (s.substring (index, index + 2), 16);
+ b[i] = (byte) v;
+ }
+ return b;
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java b/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java
new file mode 100644
index 0000000000..3e8c5e95d3
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java
@@ -0,0 +1,76 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. 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.openecomp.mso.utils;
+
+import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
+
+import java.util.UUID;
+
+/**
+ */
+public class UUIDChecker {
+
+ private UUIDChecker() {
+
+ }
+
+ public static boolean isValidUUID (String id) {
+ try {
+ if (null == id) {
+ return false;
+ }
+ UUID uuid = UUID.fromString(id);
+ return uuid.toString().equalsIgnoreCase(id);
+ } catch (IllegalArgumentException iae) {
+ return false;
+ }
+ }
+
+ private static String getUUID () {
+ return UUID.randomUUID().toString();
+ }
+
+ public static String verifyOldUUID (String oldId, MsoLogger msoLogger) {
+ if (!UUIDChecker.isValidUUID(oldId)) {
+ String newId = UUIDChecker.getUUID();
+ MsoLogger.setLogContext(newId, null);
+ msoLogger.info(MessageEnum.APIH_REPLACE_REQUEST_ID, oldId, "", "");
+ return newId;
+ }
+ MsoLogger.setLogContext(oldId, null);
+ return oldId;
+ }
+
+ public static String generateUUID (MsoLogger msoLogger) {
+ String newId = UUIDChecker.getUUID();
+ MsoLogger.setLogContext(newId, null);
+ msoLogger.info(MessageEnum.APIH_GENERATED_REQUEST_ID, newId, "", "");
+ return newId;
+ }
+
+ public static String generateServiceInstanceID (MsoLogger msoLogger) {
+ String newId = UUIDChecker.getUUID();
+ MsoLogger.setLogContext(null, newId);
+ msoLogger.info(MessageEnum.APIH_GENERATED_SERVICE_INSTANCE_ID, newId, "", "");
+ return newId;
+ }
+}