throws AuthorizableExistsException, RepositoryException {
if (userID == null || password == null || principal == null) {
throw new IllegalArgumentException("Not possible to create user with null parameters");
}
if (getAuthorizable(userID) != null) {
throw new AuthorizableExistsException("User for '" + userID + "' already exists");
}
if (hasAuthorizableOrReferee(principal)) {
throw new AuthorizableExistsException("Authorizable for '" + principal.getName() + "' already exists");
}
NodeImpl parent = null;
try {
String parentPath = getParentPath(intermediatePath, getCurrentUserPath());