diff options
author | ChrisC <cc697w@intl.att.com> | 2017-01-31 11:40:03 +0100 |
---|---|---|
committer | ChrisC <cc697w@intl.att.com> | 2017-01-31 12:59:33 +0100 |
commit | 025301d08b061482c1f046d562bf017c8cbcfe8d (patch) | |
tree | 68a2a549736c9bf0f7cd4e71c76e40ef7e2606f2 /common/src/main/java/org/openecomp/mso/utils | |
parent | 2754ad52f833278a5c925bd788a16d1dce16a598 (diff) |
Initial OpenECOMP MSO commit
Change-Id: Ia6a7574859480717402cc2f22534d9973a78fa6d
Signed-off-by: ChrisC <cc697w@intl.att.com>
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/utils')
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; + } +} |