X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=navigator.gssweb.js;h=8aa498c2afa5152784d96e4e03bc90359ce90116;hb=34e3c491878b22005ffde2128226b1ce8d152fd3;hp=27163c01eb6fa59567cd80a9111eb98c88bbeae2;hpb=6cc1b81776266e402a7d5ed416cd978ae2a3ed04;p=gssweb.git diff --git a/navigator.gssweb.js b/navigator.gssweb.js index 27163c0..8aa498c 100644 --- a/navigator.gssweb.js +++ b/navigator.gssweb.js @@ -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 );