2010-09-01 38 views
3

我使用Java Web Start。該文件在http服務器上,需要名稱和密碼(它是Windows服務器)。什麼是Java Web Start的確實是這樣(與用戶和IP節錄):如何說服Java Web Start實際記住密碼?

java web start

MS Windows客戶機上的相同。有這個「將密碼保存在密碼列表中」選項,在Mac OS和Windows上都不會執行任何操作,當再次運行此Java Web Start應用程序時,它需要再次輸入密碼。

這是JWS中的錯誤嗎?或者究竟發生了什麼?

+0

在JWS的windows版本中,措辭可能略有不同;但是,結果是一樣的。 – 2010-09-01 07:40:55

+0

不,它沒有什麼不同,它是100%一樣的。 – 2010-09-01 07:48:45

+0

我有同樣的問題。 (你有沒有找到這個解決方案? – NagyI 2011-04-01 13:30:54

回答

1

我剛剛有同樣的問題。

事實證明,您需要重新啓動您的Web瀏覽器才能讓java記住您的密碼。

我也允許java緩存,但我不認爲這是解決方案。

+0

我現在還不能接受它,因爲我已經使用了一種解決方法,我不知道這是否有幫助。它再次當我有時間,並接受你的答案,如果它的工作 – 2011-04-10 19:06:56

1

我已經爲此問題實施瞭解決方法。您可以使用某種基於cookie的身份驗證來支持密碼身份驗證。

在我的情況下,當使用HTTP基本認證成功登錄時,我使用基本方法(BASE64編碼)在我的servlet中發送一個cookie,該cookie包含用戶名和密碼。 Web Start將此Cookie存儲在Windows上的Internet Explorer的Cookie存儲中(在其他系統上,Web Start擁有自己的Cookie存儲)。每次從我的域訪問資源時,Web Start都會發送此Cookie。您可以爲cookie指定非常長的生命週期(如10年),無論如何這可能會超過當前的操作系統安裝。

在隨後的請求中,我檢查cookie的存在並嘗試根據此驗證用戶。如果Cookie身份驗證無效,並且沒有收到HTTP頭(或者也無效),則發送HTTP 401 Unauthorized狀態。

缺點是用戶名和密碼被存儲爲計算機上的cookie。通過網絡發送密碼的方式與使用HTTP基本身份驗證的方式相同,只是在不同的頭部中,因此您可以使用HTTPS保護密碼。

這也解決了Linux Web Start上缺少密碼記憶選項的問題。

0

我實現了cookie的想法,現在的麻煩是,如果你想要如何清除cookie?我的意思是,很好,cookie是持久的,但如果用戶想要清除cookie呢?據我所知,Java控制檯沒有選擇。清除網絡啓動緩存似乎沒有做到這一點。在Windows上,據說IE存儲它,所以IE提供了一個接口(我自己沒有測試過)。但在Mac和Linux上,我只是無法找到它們的存儲位置。試圖尋找喜好文件,並試圖吹走整個Java緩存文件夾,但他們仍然存儲在某個地方。任何人有想法?