Package a firefox .xpi file
[gssweb.git] / navigator.gssweb.js
index a72fa87..cd17389 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)
     });
   };
@@ -124,7 +118,7 @@ var GSSWeb = (function () {
     };
 
     if ("" != this.clientCred) {
-      params.claimant_cred_handle = this.clientCred;
+      params.cred_handle = this.clientCred;
     }
     if ("" != this.serverToken) {
       params.input_token = this.serverToken;
@@ -135,31 +129,37 @@ var GSSWeb = (function () {
 
     this.gss.init_sec_context(params);
   };
+
   GSSWeb.prototype.sendTokenToServer = 
-    function (ctxt, 
-              mech_type, 
-              output_token, 
-              ret_flags, 
-              time_rec,
+    function (data, 
               app_tag) {
-    this.clientToken = output_token;
-    this.context = ctxt;
+    this.clientToken = data.output_token;
+    this.context = data.context_handle;
 
-    var data = "nonce=" + this.nonce +
+    var msg = "nonce=" + this.nonce +
                "&token=" + encodeURIComponent(this.clientToken);
-    this.xhr.send(data);
+
+    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);
   };
+
   GSSWeb.prototype.recvTokenFromServer = function () {
     // Only care when we're ready
     if (this.xhr.readyState != 4) {
       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(
@@ -170,12 +170,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
         );