diff options
Diffstat (limited to 'src/main/org/onap/ecomp/main/APIHConfig.java')
-rw-r--r-- | src/main/org/onap/ecomp/main/APIHConfig.java | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/main/org/onap/ecomp/main/APIHConfig.java b/src/main/org/onap/ecomp/main/APIHConfig.java new file mode 100644 index 0000000..a9d4801 --- /dev/null +++ b/src/main/org/onap/ecomp/main/APIHConfig.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * =============LICENSE_START========================================================= + * + * ================================================================================= + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + *******************************************************************************/ +package org.onap.ecomp.main; + +import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.util.Scanner; + +import javax.xml.bind.DatatypeConverter; + +import org.json.JSONObject; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +public class APIHConfig { + final static EELFLogger logger = EELFManager.getInstance().getLogger(APIHConfig.class); + private static JSONObject configObject = new JSONObject(); + private static APIHConfig apihConfigObj = null; + + + public APIHConfig () throws Exception { + configObject = readConfiguration(); + } + + public static APIHConfig getInstance() { + + if (apihConfigObj == null) { + try { + apihConfigObj = new APIHConfig(); + } catch (Exception e) { + StringWriter stack = new StringWriter(); + e.printStackTrace(new PrintWriter(stack)); + logger.info(stack.toString()); + } + } + + return apihConfigObj; + } + + public JSONObject getConfigObject() { + return configObject; + } + + private JSONObject readConfiguration() throws Exception{ + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("configuration.txt").getFile()); + StringBuilder configString = new StringBuilder(); + Scanner scanner = new Scanner(file); + + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + configString.append(line); + } + + JSONObject configObject = new JSONObject(configString.toString()); + scanner.close(); + return configObject; + } + + public boolean validateUser(String authString, String userId, String function){ + + if(!configObject.optBoolean("enableAuthetication")){ + logger.info("Authentication is disabled. Continuing ..."); + return true; + } + + if(authString ==null || authString.isEmpty()){ + logger.info("Authentication data missing. Not Authorized"); + return false; + } + + String decodedAuth = ""; + String[] authParts = authString.split("\\s+"); + + String authInfo = authParts[1]; + byte[] bytes = null; + bytes = DatatypeConverter.parseBase64Binary(authInfo); + + decodedAuth = new String(bytes,StandardCharsets.UTF_8); + String[] authen = decodedAuth.split(":"); + + + // APIHUtil.getIntance().generate() use this function once the encrytion to work + if (authen.length > 1 && configObject.optBoolean("enableAuthetication") && authen[0].equals(configObject.optString("mechid")) + && authen[1].equals(configObject.optString("pass"))) { + logger.info("Application is authenticated sucessfully"); + return true; + } else { + logger.info("Application authentication Failed!!"); + return false; + } + } +} + + |