[libgovirt] proxy: Fix persistent session with oVirt 3.6
- From: Christophe Fergeau <teuf src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgovirt] proxy: Fix persistent session with oVirt 3.6
- Date: Tue, 14 Jun 2016 13:26:22 +0000 (UTC)
commit 821c4c96edaeca300146137067533f86d6e0b065
Author: Christophe Fergeau <cfergeau redhat com>
Date: Tue Jun 14 14:38:07 2016 +0200
proxy: Fix persistent session with oVirt 3.6
commit d3683c2 "proxy: Only set 'Prefer: persistent-auth' with
jsession-id" was working as expected when using the
OvirtProxy::jsession-id and OvirtProxy::sso-token properties.
However, when not using these properties and expecting the jsessionid to
be set as a cookie during a regular HTTP session, this was not working
properly as oVirt is not sending a jsessionid cookie when Prefer:
persistent-auth is not set.
Consequently, we need to set it upon OvirtProxy creation in order not to
break this usecase. We don't add the header in RestProxyCall as was done
before as we want to be able to disable this addition after
OvirtProxy::sso-token has been set.
govirt/ovirt-proxy.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
---
diff --git a/govirt/ovirt-proxy.c b/govirt/ovirt-proxy.c
index fc0273f..08e42d2 100644
--- a/govirt/ovirt-proxy.c
+++ b/govirt/ovirt-proxy.c
@@ -801,9 +801,6 @@ static void ovirt_proxy_set_session_id(OvirtProxy *proxy, const char *session_id
cookie = soup_cookie_new("JSESSIONID", session_id, domain, "/ovirt-engine/api", -1);
soup_cookie_jar_add_cookie(proxy->priv->cookie_jar, cookie);
proxy->priv->jsessionid_cookie = cookie;
- ovirt_proxy_add_header(proxy, "Prefer", "persistent-auth");
- } else {
- ovirt_proxy_add_header(proxy, "Prefer", NULL);
}
g_free(url);
}
@@ -815,6 +812,7 @@ static void ovirt_proxy_set_sso_token(OvirtProxy *proxy, const char *sso_token)
g_free(proxy->priv->sso_token);
proxy->priv->sso_token = g_strdup(sso_token);
+ ovirt_proxy_add_header(proxy, "Prefer", NULL);
header_value = g_strdup_printf("Bearer %s", sso_token);
ovirt_proxy_add_header(proxy, "Authorization", header_value);
g_free(header_value);
@@ -903,6 +901,7 @@ static void ovirt_proxy_constructed(GObject *gobject)
g_warning("Disabling strict checking of SSL certificates");
g_object_set(OVIRT_PROXY(gobject), "ssl-strict", FALSE, NULL);
}
+ ovirt_proxy_add_header(OVIRT_PROXY(gobject), "Prefer", "persistent-auth");
/* Chain up to the parent class */
if (G_OBJECT_CLASS(ovirt_proxy_parent_class)->constructed)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]