Version and install for library
[gssweb.git] / navigator.gssweb.js
index 27163c0..8aa498c 100644 (file)
@@ -1,4 +1,4 @@
-console.log("Loading navigator.gssweb.js - #2");
+console.log("Loading navigator.gssweb.js - #4");
 
 
 var GSSWeb = (function () {
@@ -17,14 +17,8 @@ var GSSWeb = (function () {
     this.serverToken = "";
     this.clientCred = "";
     this.xhr = new XMLHttpRequest();
-    this.xhr.open("POST", this.serverPath, true);
-    this.xhr.setRequestHeader(
-      'Content-Type', 
-      'application/x-www-form-urlencoded'
-    );
-    this.xhr.onreadystatechange = this.recvTokenFromServer.bind(this);
 
-    this.gss = new navigator.gss_eap({
+    this.gss = new navigator.gssEap({
       appTag: this.appTag,
       error: this.handleGSSError.bind(this)
     });
@@ -73,7 +67,7 @@ var GSSWeb = (function () {
 
   GSSWeb.prototype.authGetServerName = function () {
     this.gss.import_name({
-      name: "HTTP@" + window.location.host,
+      name: "HTTP@" + window.location.hostname,
       success: this.authReceiveServerName.bind(this)
     });
   };
@@ -144,7 +138,19 @@ var GSSWeb = (function () {
 
     var msg = "nonce=" + this.nonce +
                "&token=" + encodeURIComponent(this.clientToken);
+
+    this.xhr.open("POST", this.serverPath, true);
+
+    this.xhr.setRequestHeader(
+      'Content-Type', 
+      'application/x-www-form-urlencoded'
+    );
+    this.xhr.onreadystatechange = this.recvTokenFromServer.bind(this);
+
     this.xhr.send(msg);
+    if (this.xhr.readyStatus <= 2)
+        console.log("Error sending POST, readyStatus =" + this.xhr.readyStatus
+                  + ", msg = '" + msg + "'");
   };
 
   GSSWeb.prototype.recvTokenFromServer = function () {
@@ -153,11 +159,10 @@ var GSSWeb = (function () {
       return;
     }
 
-    var serverResponse = JSON.parse(this.xhr.responseText);
-    this.serverToken = serverResponse.gssweb.token;
     switch (this.xhr.status) {
       case 200:
         // Finished!
+        var serverResponse = JSON.parse(this.xhr.responseText);
         var decoded = window.atob(serverResponse.application.data);
         this.authenticationState = true;
         this.success(
@@ -168,12 +173,14 @@ var GSSWeb = (function () {
         break;
       case 401:
         // Continue needed
+        var serverResponse = JSON.parse(this.xhr.responseText);
+        this.serverToken = serverResponse.gssweb.token;
         this.authInitSecContext();
         break;
       default:
         // We have some server-reported error
         this.error(
-          window.location.host + 
+          window.location.hostname + 
           " reported an error; aborting",
           this.appTag
         );