-console.log("Loading navigator.gssweb.js - #2");
+console.log("Loading navigator.gssweb.js - #4");
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)
});
GSSWeb.prototype.authGetServerName = function () {
this.gss.import_name({
- name: "HTTP@" + window.location.host,
+ name: "HTTP@" + window.location.hostname,
success: this.authReceiveServerName.bind(this)
});
};
};
if ("" != this.clientCred) {
- params.claimant_cred_handle = this.clientCred;
+ params.cred_handle = this.clientCred;
}
if ("" != this.serverToken) {
params.input_token = this.serverToken;
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(
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
);