获取文档的主机名。引荐来源网址并重定向

时间:2018-08-17 17:43:51

标签: javascript redirect greasemonkey

注意:使用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

0 个答案:

没有答案