Initial commit for AAI-UI(sparky-backend)
[aai/sparky-be.git] / src / main / java / org / openecomp / sparky / security / portal / config / PortalAuthenticationConfig.java
1 /**
2  * ============LICENSE_START===================================================
3  * SPARKY (AAI UI service)
4  * ============================================================================
5  * Copyright © 2017 AT&T Intellectual Property.
6  * Copyright © 2017 Amdocs
7  * All rights reserved.
8  * ============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=====================================================
21  *
22  * ECOMP and OpenECOMP are trademarks
23  * and service marks of AT&T Intellectual Property.
24  */
25
26 package org.openecomp.sparky.security.portal.config;
27
28 import java.util.Properties;
29
30 import org.openecomp.sparky.util.ConfigHelper;
31 import org.openecomp.sparky.util.Encryptor;
32 import org.openecomp.sparky.viewandinspect.config.TierSupportUiConstants;
33
34 /**
35  * Provides Portal authentication configuration.
36  */
37 public class PortalAuthenticationConfig {
38
39   private String username;
40   private String password;
41   private boolean isOnapEnabled;
42
43   public static final String PROP_USERNAME = "username";
44   public static final String PROP_PASSWORD = "password"; // NOSONAR
45   public static final String PROP_IS_ONAP_ENABLED = "onap_enabled"; // NOSONAR
46   private static final String AUTHENTICATION_CONFIG_FILE = TierSupportUiConstants.PORTAL_AUTHENTICATION_FILE_LOCATION;
47
48   private PortalAuthenticationConfig() {
49     // Prevent instantiation
50   }
51
52   private static class PortalAuthenticationConfigHelper {
53     private static final PortalAuthenticationConfig INSTANCE = new PortalAuthenticationConfig();
54
55     private PortalAuthenticationConfigHelper() {
56       // Deliberately empty
57     }
58   }
59
60   /**
61    * Get a singleton instance of the configuration.
62    *
63    * @return
64    */
65   public static PortalAuthenticationConfig getInstance() {
66     PortalAuthenticationConfigHelper.INSTANCE.load();
67     return PortalAuthenticationConfigHelper.INSTANCE;
68   }
69
70   public String getUsername() {
71     return username;
72   }
73
74   public String getPassword() {
75     Encryptor encryptor = new Encryptor();
76     return encryptor.decryptValue(password);
77   }
78   
79   public boolean getIsOnapEnabled() {
80     return isOnapEnabled;
81   }
82
83   /**
84    * Reload the Portal authentication properties from the classpath.
85    */
86   public void reload() {
87     load();
88   }
89
90   /**
91    * Load the Portal authentication properties from the classpath.
92    */
93   private void load() {
94     Properties props = ConfigHelper.loadConfigFromExplicitPath(AUTHENTICATION_CONFIG_FILE);
95     username = props.getProperty(PROP_USERNAME);
96     password = props.getProperty(PROP_PASSWORD);
97     isOnapEnabled = Boolean.parseBoolean(props.getProperty(PROP_IS_ONAP_ENABLED, "true"));
98   }
99 }