81 lines
2.3 KiB
HTML
81 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
|
|
<script type="text/javascript" src="jquery.cookie-1.1.js"></script>
|
|
<script type="text/javascript" src="jquery.qs.js"></script>
|
|
<script type="text/javascript" src="debug.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
var C_ENTITY_ID = "entityID";
|
|
var C_RETURN = "return";
|
|
var C_POLICY = "policy";
|
|
var C_RETURNIDPARAM = "returnIDParam";
|
|
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;
|
|
|
|
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) {
|
|
return_url = return_url + '?';
|
|
} else {
|
|
return_url = return_url + '&';
|
|
}
|
|
return_url = return_url + return_id_param + '=' + escape(idp_entity_id);
|
|
}
|
|
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>
|