@Override
public User createUser(String userID, String password, Principal principal, String intermediatePath) throws RepositoryException {
checkValidID(userID);
NodeImpl userNode = nodeCreator.createUserNode(userID, intermediatePath);
setPrincipal(userNode, principal);
setPassword(userNode, password, true);
User user = new UserImpl(userNode, this);
onCreate(user, password);
log.debug("User created: " + userID + "; " + userNode.getPath());
return user;
}