X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fusermanager%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fusermanager%2FUserConfig.java;h=0c14dea38a4a9ff69993d1e6a88503ceb5db0792;hb=468552562af9a4192426000ebeff637d029b006f;hp=2e03db16558ad61ad90b428fb9fd76116682a074;hpb=36262999dfccd4bca88ab67854db10b36e47fe0c;p=controller.git diff --git a/opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java b/opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java index 2e03db1655..0c14dea38a 100644 --- a/opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java +++ b/opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java @@ -18,37 +18,71 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + import org.opendaylight.controller.sal.authorization.AuthResultEnum; import org.opendaylight.controller.sal.utils.HexEncode; import org.opendaylight.controller.sal.utils.Status; import org.opendaylight.controller.sal.utils.StatusCode; -import org.opendaylight.controller.usermanager.AuthResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Configuration Java Object which represents a Local AAA user configuration * information for User Manager. */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.NONE) public class UserConfig implements Serializable { private static final long serialVersionUID = 1L; - - protected String user; - protected List roles; - private String password; - + private static Logger log = LoggerFactory.getLogger(UserConfig.class); private static final boolean strongPasswordCheck = Boolean.getBoolean("enableStrongPasswordCheck"); + private static final String DIGEST_ALGORITHM = "SHA-384"; private static final String BAD_PASSWORD = "Bad Password"; private static final int USERNAME_MAXLENGTH = 32; protected static final String PASSWORD_REGEX = "(?=.*[^a-zA-Z0-9])(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,256}$"; private static final Pattern INVALID_USERNAME_CHARACTERS = Pattern.compile("([/\\s\\.\\?#%;\\\\]+)"); - private static MessageDigest oneWayFunction = null; + private static MessageDigest oneWayFunction; + static { try { - UserConfig.oneWayFunction = MessageDigest.getInstance("SHA-1"); + UserConfig.oneWayFunction = MessageDigest.getInstance(DIGEST_ALGORITHM); } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); + log.error(String.format("Implementation of %s digest algorithm not found: %s", DIGEST_ALGORITHM, + e.getMessage())); } } + /** + * User Id + */ + @XmlElement + protected String user; + + /** + * List of roles a user can have + * example + * System-Admin + * Network-Admin + * Network-Operator + */ + @XmlElement + protected List roles; + + /** + * Password + * Should be 8 to 256 characters long, + * contain both upper and lower case letters, at least one number, + * and at least one non alphanumeric character. + */ + @XmlElement + private String password; + + + public UserConfig() { }