2013-03-14 206 views
0

我需要使用插件自動執行代理服務器的授權。找出當前請求是否是Firefox中的代理請求?

我還檢查的是做到這一點的其他擴展的來源,並且它們像這樣做:

var httpRequestObserver = 
{ 
    observe: function(subject, topic, data) 
    { 
     if (topic === "http-on-modify-request") { 
      var channel = subject.QueryInterface(Components.interfaces.nsIHttpChannel); 
      channel.setRequestHeader("Proxy-Authorization", "Basic myauthorizationtoken" , false); 
     } 
    } 
}; 

請求觀察者添加授權頭到每個傳出請求。如果設置了常規代理,那很好,但是在我的情況下,我有一個代理pac url,其中只有特定的請求使用代理完成,而其他則不是!

在這種情況下,基本上包含明文憑證的授權頭被髮送到每個未通過代理訪問的網站。

顯然不能這樣,所以我需要找出當前請求是否是代理請求,然後才設置頭。

或者找產品總數另一種方式......

在Chrome中我做了這樣的:

chrome.webRequest.onAuthRequired.addListener(handleAuthRequest, 
    {urls: ["<all_urls>"]}, ["asyncBlocking"]); 


function handleAuthRequest(details, callback) { 

    if (details.isProxy === true){ 

    callback({authCredentials: {username: localStorage['login'], 
           password: localStorage['pass']}}); 
    } 
    callback(); 

} 

顯然,這是最佳!不過,我不能在Firefox中看到一個好方法。

回答

0

事實表明受試者具有屬性proxyInfo其是空值或設定,也proxyInfo進一步屬性來檢查

+0

一些示例代碼? – msangel 2015-10-21 19:16:18

+0

對不起,已經很久了。現在apis probalby已經多次更新。對於在其擴展中允許代理修改,chrome也變得非常挑剔。有新的指導方針和一切。 – 2015-10-21 20:34:39

相關問題