diff app/override/RestProxy.js @ 920:f220ba587c89

Adopted Client to SSO, detect a Sessiontimeout and reload the application
author Dustin Demuth <dustin@intevation.de>
date Fri, 14 Aug 2015 13:27:50 +0200
parents 2bf35377414a
children
line wrap: on
line diff
--- a/app/override/RestProxy.js	Fri Aug 14 10:34:53 2015 +0200
+++ b/app/override/RestProxy.js	Fri Aug 14 13:27:50 2015 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015 by Bundesamt fuer Strahlenschutz
+/* Copyrighte(C) 2015 by Bundesamt fuer Strahlenschutz
  * Software engineering by Intevation GmbH
  *
  * This file is Free Software under the GNU GPL (v>=3)
@@ -15,26 +15,25 @@
     },
 */
     processResponse: function (success, operation, request, response, callback, scope) {
-        /* Check if we were authenticated at one point (Lada.openIDParams) and
-         * if the response means that we lost that authentcation */
-        if (!success && response.status == 401) {
-            var json = Ext.decode(response.responseText);
-            if (json) {
-                if (json.message === "699" || json.message === "698") {
-                    /* This is the unauthorized message with the authentication
-                     * redirect in the data */
+        /*
+           SSO will send a 302 if the Client is not authenticated
+           unfortunately this seems to be filtered by the browser.
+           We assume that a 302 was send when the follwing statement
+           is true.
+        */
+        if (!success && response.status == 0 && response.responseText === "") {
+            Ext.MessageBox.confirm('Erneutes Login erforderlich',
+                'Ihre Session ist abgelaufen.<br/>'+
+                'Für ein erneutes Login muss die Anwendung neu geladen werden.<br/>' +
+                'Alle ungesicherten Daten gehen dabei verloren.<br/>' +
+                'Soll die Anwendung jetzt neu geladen werden?', this.reload);
+        }
+        this.callParent(arguments);
+    },
 
-                    /* We decided to handle this with a redirect to the identity
-                     * provider. In which case we have no other option then to
-                     * handle it here with relaunch. */
-                    Ext.MessageBox.confirm('Erneutes Login erforderlich',
-                        'Ihre Session ist abgelaufen.<br/>'+
-                        'Für ein erneutes Login muss die Anwendung neu geladen werden.<br/>' +
-                        'Alle ungesicherten Daten gehen dabei verloren.<br/>' +
-                        'Soll die Anwendung jetzt neu geladen werden?', this.reload);
-                }
-            }
-        }
+
+    parseStatus: function(status) {
+        console.log(status);
         this.callParent(arguments);
     },
 

http://lada.wald.intevation.org