package com.limegroup.gnutella.security; import java.io.Serializable; import java.util.HashSet; import java.util.Set; /** * Contains authentication information for a user * @author Anurag Singla */ public class User implements Serializable { /** * For compatibility between different versions of this class */ static final long serialVersionUID = -3608126644033971628L; /** * Unique User name */ private String _username; /** * password for the user, to be used for authentication */ private String _password; /** * The set of domains to which the user belongs */ private Set /* of String */ _domains; public static final String DEFAULT_UNAUTHENTICATED_DOMAIN = "__DEFAULT_UNAUTHENTICATED_DOMAIN__"; /** * creates a new user * @param username unique name for the user * @param password User's password to be used for authentication */ public User(String username, String password) { //delegate to the other constructor, and pass default domain set //as an additional parameter this(username, password, createDefaultDomainSet()); } /** * creates a new user * @param username Unique name for the user * @param password User's password to be used for authentication * @param domains The set of domains to which the user belongs */ public User(String username, String password, Set domains) { //initialize with parameters this._username = username; this._password = password; this._domains = domains; } /** * creates a default domain set, that contains defualt domain * @return Set (of String) of default domains */ public static Set createDefaultDomainSet(){ Set domainSet = new HashSet(); //add the default domain to the list of domains domainSet.add(DEFAULT_UNAUTHENTICATED_DOMAIN); return domainSet; } /** * Returns the username for the user * @return the username for the user */ public String getUsername() { return _username; } /** * Returns the password for the user * @return the password for the user */ public String getPassword() { return _password; } /** * Adds the passed domain to the set of domains user belongs to * @param domain The domain to be added */ public void addDomain(String domain) { _domains.add(domain); } /** * Removes the passed domain from the set of domains user belongs to * @param domain The domain to be removed */ public void removeDomain(String domain) { _domains.remove(domain); } /** * Returns the set of domains to which the user belongs * @return the set of domains to which the user belongs */ public Set getDomains() { return _domains; } /** * returns the string representation of the contents * @return the string representation of the contents */ public String toString() { return "username=" + _username + "&password=" + _password + "&domains=" + _domains; } }