areguera / rpms / cockpit

Forked from rpms/cockpit 5 years ago
Clone

Blame SOURCES/0005-Fix-registry-console-Windows-IE-and-Edge-login.patch

9454e5
From 96d64114ecedbb1203199339d443aba8f79f2417 Mon Sep 17 00:00:00 2001
9454e5
From: petervo <petervo@redhat.com>
9454e5
Date: Thu, 10 Nov 2016 12:21:28 -0800
9454e5
Subject: [5/7] Fix registry console Windows IE and Edge login
9454e5
9454e5
https://bugzilla.redhat.com/show_bug.cgi?id=1378810
9454e5
https://bugzilla.redhat.com/show_bug.cgi?id=1393740
9454e5
9454e5
Upstream commits:
9454e5
b403d66ff9b2a74c58dc296236491af2aae33601
9454e5
    ws: Explictly set no-cache on all login responses
9454e5
80a239cf53d0eb44fef5da3e3b31d67bb065e336
9454e5
    ws: Extract baseURI from tag for some IEs
9454e5
9454e5
Closes #5363
9454e5
Signed-off-by: Stef Walter <stefw@redhat.com>
9454e5
 * Signing off inclusion in the rhel-7.3.1 branch
9454e5
---
9454e5
 src/ws/cockpithandlers.c |  2 ++
9454e5
 src/ws/login.html        | 13 ++++++++++++-
9454e5
 2 files changed, 14 insertions(+), 1 deletion(-)
9454e5
9454e5
diff --git a/src/ws/cockpithandlers.c b/src/ws/cockpithandlers.c
9454e5
index f96354e..1611fdd 100644
9454e5
--- a/src/ws/cockpithandlers.c
9454e5
+++ b/src/ws/cockpithandlers.c
9454e5
@@ -408,6 +408,8 @@ on_login_complete (GObject *object,
9454e5
   headers = cockpit_web_server_new_table ();
9454e5
   response_data = cockpit_auth_login_finish (COCKPIT_AUTH (object), result, flags, headers, &error);
9454e5
 
9454e5
+  /* Never cache a login response */
9454e5
+  cockpit_web_response_set_cache_type (response, COCKPIT_WEB_RESPONSE_NO_CACHE);
9454e5
   if (error)
9454e5
     {
9454e5
       if (response_data)
9454e5
diff --git a/src/ws/login.html b/src/ws/login.html
9454e5
index 3eb30f5..d114cc0 100644
9454e5
--- a/src/ws/login.html
9454e5
+++ b/src/ws/login.html
9454e5
@@ -133,8 +133,19 @@
9454e5
             /* Sets values for application, url_root and login_path */
9454e5
             function setup_path_globals (path) {
9454e5
                 var parser = document.createElement('a');
9454e5
+                var base = document.baseURI;
9454e5
+                var base_tags;
9454e5
+                /* Some IEs don't support baseURI */
9454e5
+                if (!base) {
9454e5
+                    base_tags = document.getElementsByTagName ("base");
9454e5
+                    if (base_tags.length > 0)
9454e5
+                        base = base_tags[0].href;
9454e5
+                    else
9454e5
+                        base = "/";
9454e5
+                }
9454e5
+
9454e5
                 path = path || "/";
9454e5
-                parser.href = document.baseURI;
9454e5
+                parser.href = base;
9454e5
                 if (parser.pathname != "/") {
9454e5
                     url_root = parser.pathname.replace(/^\/+|\/+$/g, '');
9454e5
                     window.localStorage.setItem('url-root', url_root);
9454e5
-- 
9454e5
2.5.5
9454e5