/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.usermanager.internal; import java.io.Serializable; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.opendaylight.controller.sal.authorization.AuthResultEnum; import org.opendaylight.controller.usermanager.AuthResponse; /** * Configuration Java Object which represents a Local AAA user * configuration information for User Manager. */ public class UserConfig implements Serializable { private static final long serialVersionUID = 1L; /* * Clear text password as we are moving to some MD5 digest * for when saving configurations */ protected String user; protected String role; private String password; public UserConfig() { } public UserConfig(String user, String password, String role) { this.user = user; this.password = password; this.role = role; } public String getUser() { return user; } public String getPassword() { return password; } public String getRole() { return role; } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } @Override public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj); } @Override public String toString() { return "UserConfig[user="+ user + ", password=" + password + "]"; } public boolean isValid() { return (user != null && !user.isEmpty() && role != null && !role.isEmpty() && password != null && !password.isEmpty()); } public boolean update(String currentPassword, String newPassword, String newRole) { // To make any changes to a user configured profile, current password // must always be provided if (!this.password.equals(currentPassword)) { return false; } if (newPassword != null) { this.password = newPassword; } if (newRole != null) { this.role = newRole; } return true; } public AuthResponse authenticate(String clearTextPass) { AuthResponse locResponse = new AuthResponse(); if (password.equals(clearTextPass)) { locResponse.setStatus(AuthResultEnum.AUTH_ACCEPT_LOC); locResponse.addData(role.replace(",", " ")); } else { locResponse.setStatus(AuthResultEnum.AUTH_REJECT_LOC); } return locResponse; } }