if (!users.containsKey(username)) {
LocalUser user = new LocalUser(username, createHashedPassword(password), this, changeTracker);
users.put(username, user);
store(user);
if (propagate) {
changeTracker.addChange(new UserbaseChange(UserbaseChange.Property.User, Modification.Add, username, password));
}
return user;
} else {
throw new UserExistsException(username);
}