add a possibily for a local web-service to forbid the request
This commit is contained in:
parent
c35b7faed4
commit
cea9d392f6
61
store.html
61
store.html
|
@ -15,24 +15,16 @@
|
|||
var C_IS_PASSIVE = "isPassive";
|
||||
var C_IDP_ENTITY_ID = "IdPentityID";
|
||||
var COOKIE_TIMEOUT_DAYS = 730; // 2 years
|
||||
var check_requestor_ws = "./check.json";
|
||||
var check_requestor_ws_timeout = 3000;
|
||||
var ok = true;
|
||||
|
||||
var qs = $.parseQuerystring();
|
||||
var entity_id = qs[C_ENTITY_ID];
|
||||
var return_url = qs[C_RETURN];
|
||||
var return_id_param = C_ENTITY_ID;
|
||||
if (C_RETURNIDPARAM in qs) {
|
||||
return_id_param = qs[C_RETURNIDPARAM];
|
||||
}
|
||||
var idp_entity_id = undefined;
|
||||
|
||||
if (C_IDP_ENTITY_ID in qs) {
|
||||
idp_entity_id = qs[C_IDP_ENTITY_ID];
|
||||
debug_alert('set idp to ' + idp_entity_id);
|
||||
} else {
|
||||
idp_entity_id = $.cookie(C_IDP_ENTITY_ID);
|
||||
}
|
||||
function response() {
|
||||
function response(idp_entity_id) {
|
||||
debug_alert('query by ' + entity_id);
|
||||
if (! return_url) {
|
||||
alert("no return url");
|
||||
return;
|
||||
}
|
||||
if (idp_entity_id) {
|
||||
$.cookie(C_IDP_ENTITY_ID, idp_entity_id, { expires: COOKIE_TIMEOUT_DAYS });
|
||||
if (return_url.indexOf('?') == -1) {
|
||||
|
@ -45,7 +37,44 @@
|
|||
debug_alert('returning to ' + return_url);
|
||||
window.location.href = return_url;
|
||||
}
|
||||
|
||||
var qs = $.parseQuerystring();
|
||||
var entity_id = qs[C_ENTITY_ID];
|
||||
var return_url = qs[C_RETURN];
|
||||
var return_id_param = C_ENTITY_ID;
|
||||
if (C_RETURNIDPARAM in qs) {
|
||||
return_id_param = qs[C_RETURNIDPARAM];
|
||||
}
|
||||
var idp_entity_id = undefined;
|
||||
|
||||
if (check_requestor_ws) {
|
||||
ok = false;
|
||||
$.ajax({
|
||||
url: check_requestor_ws,
|
||||
dataType: 'json',
|
||||
async: false,
|
||||
timeout: check_requestor_ws_timeout,
|
||||
data: { 'return': return_url, 'referrer': document.referrer },
|
||||
success: function (data) {
|
||||
if (data.result == 'ok') {
|
||||
ok = true;
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, status) {
|
||||
debug_alert("check_requestor_ws failed with status:" + status);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!ok) {
|
||||
response();
|
||||
} else {
|
||||
if (C_IDP_ENTITY_ID in qs) {
|
||||
debug_alert('set idp to ' + qs[C_IDP_ENTITY_ID]);
|
||||
response(qs[C_IDP_ENTITY_ID]);
|
||||
} else {
|
||||
response($.cookie(C_IDP_ENTITY_ID));
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
Reference in New Issue