0

我需要包含一些安全(BASIC認證)應用程序。強制瀏覽器發送一些HTTP請求標頭

當我打開瀏覽器應用程序URL,瀏覽器要求我輸入憑據......

我知道那是什麼:

  1. 瀏覽器向服務器獲取 某些網址 - 應用的網址
  2. 服務器檢查請求標頭 ,因爲Authentication header和 未找到它
  3. 服務器發送401到 瀏覽器後退
  4. 瀏覽器解釋這個響應 代碼到一個消息對話框, 節目給我要我進入 用戶名/密碼在Authentication發送回 服務器 請求頭

到目前爲止...好,我可以寫一些頁面(JSP中),這需要的HTTP請求頭髮送到正在調用該頁面的請求.. 所以我會通過我的頁面調用這個應用程序..

這裏的問題是,這個應用程序(實際上是一個GWT應用程序)包含一些JavaScript和CSS文件的引用來自託管此應用程序的服務器。我導入的應用程序頁面的樣子:

<html> 
    <link href="http://application_host/cssfile.css" /> 
    <link href="http://application_host/javascriptfile.js" /> 
    ..... 
</html> 

所以,我再次找到了應用程序要求我的CSS和JS文件認證crenditals!

我想到很多的解決方案,但不知道每個

  • 一個解決方案的適用性是要求瀏覽器 (通過Javascript)將請求發送 頭(Authentication),當他 問爲js和css服務器 文件

請給我你的意見...以及任何其他建議將非常歡迎。

謝謝。

回答

0

從你的故事判斷,有些東西告訴我你的問題在於它的認證方法。不是如何實施它。你爲什麼要這麼煩請求標題?

據我所知,您可以配置您的容器(即Tomcat)強制某些URL的http身份驗證。您的容器將確保已進行身份驗證。無需自己設置http標題。

也許你可以更好地解釋你想要達到的目標,而不是告訴實施細節?

+0

好吧,雖然你猜,我是應用程序開發人員,但我不是把安全角色放在這個人身上的人。它是應用程序部署者,他將身份驗證放在所有應用程序URL(/ *)上。 – 2011-02-11 21:01:34

1

我想你已經陷入了一些怪異的情況,那就是你的服務器配置如何。身份驗證發生在身份驗證領域的環境中。您的資產應該與您的頁面處於相同的身份驗證領域,或者(更可能)不應該要求身份驗證。瀏覽器應該緩存給定領域的憑證,而不是再次提示。

查看http://en.wikipedia.org/wiki/Basic_access_authentication

0

協議例子,爲什麼CSS & js文件都保存在服務器的保護區?您需要將文件放入服務器的公共區域。如果你沒有公共區域,那麼你需要爲它提供幫助。如何做到這一點取決於服務器端軟件架構&的配置。

相關問題