diff options
Diffstat (limited to 'oom-app-common/src/main/java/org/onap/oom/dashboard/model/ControllerEndpointCredentials.java')
-rw-r--r-- | oom-app-common/src/main/java/org/onap/oom/dashboard/model/ControllerEndpointCredentials.java | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/oom-app-common/src/main/java/org/onap/oom/dashboard/model/ControllerEndpointCredentials.java b/oom-app-common/src/main/java/org/onap/oom/dashboard/model/ControllerEndpointCredentials.java new file mode 100644 index 0000000..1d5c1d4 --- /dev/null +++ b/oom-app-common/src/main/java/org/onap/oom/dashboard/model/ControllerEndpointCredentials.java @@ -0,0 +1,116 @@ +/******************************************************************************* + * =============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.oom.dashboard.model; + +import org.onap.oom.dashboard.exception.DashboardControllerException; +import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.openecomp.portalsdk.core.onboarding.util.CipherUtil; + +/** + * Model with Controller username and password for use only within the back end; + * never serialized as JSON. + */ +public class ControllerEndpointCredentials extends ControllerEndpointTransport { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ControllerEndpointCredentials.class); + + public String username; + public String password; + public boolean isEncryptedPass; + + public ControllerEndpointCredentials(boolean selected, String name, String url, String username, String password, + boolean isEncryptedPass) { + super(selected, name, url); + this.username = username; + this.password = password; + this.isEncryptedPass = isEncryptedPass; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public boolean getEncryptedPassword() { + return isEncryptedPass; + } + + public void setEncryptedPassword(boolean isEncryptedPass) { + this.isEncryptedPass = isEncryptedPass; + } + + /** + * Convenience method to yield a ControllerEndpointTransport object. + * + * @return ControllerEndpoint with copy of the non-privileged data + */ + public ControllerEndpointTransport toControllerEndpointTransport() { + return new ControllerEndpointTransport(getSelected(), getName(), getUrl()); + } + + /** + * Accepts clear text and stores an encrypted value; as a side effect, sets the + * encrypted flag to true. + * + * @param plainText + * Clear-text password + * @throws DashboardControllerException + * If encryption fails + */ + public void encryptPassword(final String plainText) throws DashboardControllerException { + try { + this.password = CipherUtil.encrypt(plainText); + this.isEncryptedPass = true; + } catch (Exception ex) { + logger.error("encryptPassword failed", ex); + throw new DashboardControllerException(ex); + } + } + + /** + * Client should call this method if {@link #getEncryptedPassword()} returns + * true. + * + * @return Clear-text password. + * @throws DashboardControllerException + * If decryption fails + */ + public String decryptPassword() throws DashboardControllerException { + try { + return CipherUtil.decrypt(password); + } catch (Exception ex) { + logger.error("decryptPassword failed", ex); + throw new DashboardControllerException(ex); + } + } +}
\ No newline at end of file |