X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=navigator.gssweb.js;h=cd173897fdec66575e64d2717818ff91bfbc8e37;hb=9a8792cb7a3c73019af2b1ac7dd573d6c019d9b9;hp=27163c01eb6fa59567cd80a9111eb98c88bbeae2;hpb=6cc1b81776266e402a7d5ed416cd978ae2a3ed04;p=gssweb.git diff --git a/navigator.gssweb.js b/navigator.gssweb.js index 27163c0..cd17389 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,6 +138,15 @@ 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); }; @@ -153,11 +156,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 +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 );