X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=navigator.gssweb.js;h=633ab58824f83c11c79002125b9d68cd2157fef9;hb=9c888b5b5a5b06abd81f1ea348270e01a0435f1c;hp=0ff0f137352eb85ec96990a0e35027051e47fc34;hpb=8ba88f10f8bef6440e58409db7ceee45baef6b56;p=gssweb.git diff --git a/navigator.gssweb.js b/navigator.gssweb.js index 0ff0f13..633ab58 100644 --- a/navigator.gssweb.js +++ b/navigator.gssweb.js @@ -1,4 +1,26 @@ -console.log("Loading navigator.gssweb.js - #2"); +/* + * The MIT License (MIT) + * + * Copyright (c) 2015 JISC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ var GSSWeb = (function () { @@ -17,9 +39,8 @@ var GSSWeb = (function () { this.serverToken = ""; this.clientCred = ""; this.xhr = new XMLHttpRequest(); - 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) }); @@ -68,7 +89,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) }); }; @@ -139,11 +160,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 +178,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 +192,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 );