/*
* This file is part of Cockpit.
*
* Copyright (C) 2013 Red Hat, Inc.
*
* Cockpit is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* Cockpit is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Cockpit; If not, see .
*/
#include "config.h"
#include "mock-auth.h"
#include "common/cockpitauthorize.h"
#include "websocket/websocket.h"
#include
GHashTable *
mock_auth_basic_header (const gchar *user,
const gchar *password)
{
GHashTable *headers;
gchar *userpass;
gchar *encoded;
gchar *header;
userpass = g_strdup_printf ("%s:%s", user, password);
encoded = g_base64_encode ((guchar *)userpass, strlen (userpass));
header = g_strdup_printf ("Basic %s", encoded);
g_free (userpass);
g_free (encoded);
headers = web_socket_util_new_headers ();
g_hash_table_insert (headers, g_strdup ("Authorization"), header);
return headers;
}
void
mock_auth_include_cookie_as_if_client (GHashTable *resp_headers,
GHashTable *req_headers,
const gchar *cookie_name)
{
gchar *cookie;
gchar *end;
gchar *expected = g_strdup_printf ("%s=", cookie_name);
cookie = g_strdup (g_hash_table_lookup (resp_headers, "Set-Cookie"));
g_assert (cookie != NULL);
end = strchr (cookie, ';');
g_assert (end != NULL);
end[0] = '\0';
g_assert (strncmp (cookie, expected, strlen(expected)) == 0);
g_hash_table_insert (req_headers, g_strdup ("Cookie"), cookie);
g_free (expected);
}