public function createUserObject($username, Password $password)
 {
     $usernameLower = strtolower($username);
     //search name can only be lower case
     $user = new User($usernameLower);
     foreach ($user->getObjectClasses() as $objectClass) {
         $user->addObject($objectClass);
     }
     $user->getObject(Schemas\InetOrgPerson::class)->setMail($usernameLower . '@' . $this->domain);
     $user->addRole('ROLE_USER');
     $user->setDisplayName($username);
     $user->setPasswordObject($password);
     foreach ($this->services as $service_name => $serviceConfig) {
         if (!isset($serviceConfig['enable']) || !$serviceConfig['enable']) {
             continue;
         }
         $service = new $serviceConfig['object_class']($service_name);
         $service->setUser($user);
         if (isset($serviceConfig['default']) && $serviceConfig['default']) {
             $service->setEnabled(true);
         }
     }
     return $user;
 }