注意:使用GreaseMonkey在浏览器上重定向
我知道我不能简单地放置document.refferer.hostname来收集此信息。我的目标是将当前页面重定向到document.referrer页面+ requiredPathName
代码示例:
// ==UserScript==
// @name Redirect_ADFS
// @author Eskimonian
// @version 2018.08.16
// @description Auto Redirect ADFS Sites to Internal Login Page
// @run-at document-start
// ==/UserScript==
var url = window.location.href
window.onload = function Redirect() {
if(url.indexOf("adfs") > -1) {
var refURL=document.createElement('a');
refURL.href = document.referrer;
var refer = refURL.hostname
var newurl = refer + '/admin/?saml=off'
window.location = newurl;
}
} //redirect URL if the currently existing url contains "adfs" in its pathname
不幸的是,这是该脚本的有效结果:
URL:www.piercecountywa.gov/admin
自动重定向到:www.piercecountywa.gov/Admin / Saml / LogonRequest?logonType = admin来验证服务器上的请求
意识到它是ADFS,它将AGAIN重定向到其ADFS登录名:https://sas.co.pierce.wa.us/adfs/ls
然后我的脚本运行:“ URL中包含“ adfs”,因此-让我们返回页面,获取主机名,并在其中添加“ / admin?saml = off”并重新加载”。 p>
但是,实际结果是:https://sas.co.pierce.wa.us/adfs/ls/ www.piercecountywa.gov/admin /sas.co.pierce.wa.us/ ?saml = off
不是执行应做的工作,而是将www.piercecountywa.gov/admin{sa3=off}替换为https://sas.co.pierce.wa.us/adfs/ls并重新加载页面,而是添加www.piercecountywa.gov/admin链接到URL,然后我的脚本会连续不断地重新运行。
我需要我的脚本将https://sas.co.pierce.wa.us/adfs/ls替换为www.piercecountywa.gov/admin?saml=off并重新加载页面。
注意::这需要在多个域中使用,因此我无法将此代码专门设置为www.piercecountywa.gov。它必须特定于URL中存在的“ adfs”。
更新的工作脚本:
// ==UserScript==
// @name Redirect_ADFS
// @author Eskimonian
// @version 2018.08.20
// @description Auto Redirect ADFS Sites to Internal Login Page
// @run-at document-end
// ==/UserScript==
window.onload = function Redirect() {
var currenturl = window.location.href //define current URL
if(currenturl.indexOf("/adfs") > -1) {
var newurl = "//" + new URL(document.referrer).hostname + '/admin?saml=off'; //set destination URL
alert("[Eskimo.1] SAML Site Detected. Redirecting to Internal Login page.")
window.location = newurl
}
} //redirect URL if the currently existing url contains "adfs" in its pathname