More bug fix and refactoring
[dmaap/datarouter.git] / datarouter-prov / src / main / java / org / onap / dmaap / datarouter / provisioning / utils / AafPropsUtils.java
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.dmaap.datarouter.provisioning.utils;
22
23 import com.att.eelf.configuration.EELFLogger;
24 import com.att.eelf.configuration.EELFManager;
25 import java.io.File;
26 import java.io.FileInputStream;
27 import java.io.IOException;
28 import org.onap.aaf.cadi.PropAccess;
29
30 public class AafPropsUtils {
31
32     private static EELFLogger eelfLogger = EELFManager.getInstance().getLogger(AafPropsUtils.class);
33
34     public static final String KEYSTORE_TYPE_PROPERTY = "PKCS12";
35     public static final String TRUESTSTORE_TYPE_PROPERTY = "jks";
36     private static final String KEYSTORE_PATH_PROPERTY = "cadi_keystore";
37     private static final String KEYSTORE_PASS_PROPERTY = "cadi_keystore_password_p12";
38     private static final String TRUSTSTORE_PATH_PROPERTY = "cadi_truststore";
39     private static final String TRUSTSTORE_PASS_PROPERTY = "cadi_truststore_password";
40
41     private PropAccess propAccess;
42
43     public AafPropsUtils(File propsFile) throws IOException {
44         propAccess = new PropAccess();
45         try {
46             propAccess.load(new FileInputStream(propsFile));
47         } catch (IOException e) {
48             eelfLogger.error("Failed to load props file: " + propsFile + "\n" + e.getMessage(), e);
49             throw e;
50         }
51     }
52
53     private String decryptedPass(String password) {
54         String decryptedPass = null;
55         try {
56             decryptedPass = propAccess.decrypt(password, false);
57         } catch (IOException e) {
58             eelfLogger.error("Failed to decrypt " + password + " : " + e.getMessage(), e);
59         }
60         return decryptedPass;
61     }
62
63     public PropAccess getPropAccess() {
64         return propAccess;
65     }
66
67     public String getKeystorePathProperty() {
68         return propAccess.getProperty(KEYSTORE_PATH_PROPERTY);
69     }
70
71     public String getKeystorePassProperty() {
72         return decryptedPass(propAccess.getProperty(KEYSTORE_PASS_PROPERTY));
73     }
74
75     public String getTruststorePathProperty() {
76         return propAccess.getProperty(TRUSTSTORE_PATH_PROPERTY);
77     }
78
79     public String getTruststorePassProperty() {
80         return decryptedPass(propAccess.getProperty(TRUSTSTORE_PASS_PROPERTY));
81     }
82
83 }