public function validateUsersSection(&$config)
    {
        if (!isset($config["users"])) {
            // No users are specified in the configuration file
            return;
        }
        $this->assertArray($config, "users");
        
        foreach ($config["users"] as $username => $userData) {
            $this->assertUsername($username, $config);
            try {
                $this->validateUserData($userData);
            } catch (ConfigurationException $e) {
                $e->addBeforeMessage("Invalid userdata for $username:");
                throw $e;
            }
            
            // Assure case insensitivity of username indexing
            $lowercaseName = strtolower($username);
            if ($username !== $lowercaseName) {
                if (!isset($config["users"][$lowercaseName])) {
                    $config["users"][$lowercaseName] = $userData;
                    unset($config["users"][$username]);
                } else {
                    throw new ConfigurationException("User $username is defined multiple times.");
                }
            }
        }
    }