2010-03-22 38 views
0

我想在我的Java Web應用程序中保護我的Flex應用程序。目前我的Java Web應用程序處理日誌記錄和管理用戶帳戶等。我想知道是否有一種方法可以在安全機制中與Flash電影共享該用戶憑據?例如,如果您登錄,我們希望您能夠將該項目的項目保存在該用戶的Flex應用程序中,僅當該用戶登錄時纔會這樣。有任何想法嗎?任何幫助是極大的讚賞。Flex繼承登錄用戶

更新: 對於模糊性我表示歉意。我正在運行Tomcat 5.5,Java 6在Vignette Portal中進行portlet開發。所有的數據通信都是通過Blaze DS。在我們的環境中,我們有數據服務,門戶網站處理登錄,用戶管理等。目前,我們只是簡單地將用戶名傳遞給Flash電影,我不覺得它很安全。

回答

0

您可以使用flashVars將數據傳遞給Flash電影,這些電影可以在JSP中生成。數據可以是在服務器上生成的一次性密鑰,並與用戶標識關聯。然後,Flex應用程序可以獲取密鑰並使用它通過web服務調用登錄。服務器將驗證密鑰並允許訪問用戶的帳戶。

+0

你會在什麼時候使密鑰無效?會話在基於會話的cookie過期的Web客戶端中終止。 – Nick 2010-03-22 19:34:33

+0

該密鑰可能是一次性密鑰,一旦使用就會過期,一旦通過身份驗證,就會切換到Web服務會話。在客戶端,會話將在頁面更改時過期,或者可以通過ExternalInterface調用同步。服務器端會話可以通過HttpSessionListener與HttpSession同時銷燬,也可以通過超時單獨失效。 – fgb 2010-03-23 12:22:47

0

這是一個非常普遍的問題,如果不知道目前的架構是什麼,很難提供一個好的答案。 Flex應用程序正在使用與您的Web應用程序相同的Web服務器?你用什麼來討論後端(Web服務,套接字,RTMP套接字)?如果您共享相同的Web服務器,則可以訪問相同的HTTP會話,並且可以檢查用戶是否已登錄。

如果您需要在您的Flex應用程序中注意到用戶剛從HTML應用程序註銷或會話已過期,您可以選擇多個選項,這取決於您的體系結構。假設HTML應用程序已被通知,您可以通過ExternalInterface從Flex應用程序調用一個方法。如果沒有(當您使用Flex應用程序時會話過期),您會在嘗試保存數據時知道。

+0

更新的建築問題。 Flex應用程序只是Web應用程序的一個組件,而不是應用程序本身。在我們的例子中,門戶網站負責指示用戶是否已登錄。由於它是一種購買的產品,因此不容易進入內部並改變我需要的內容。這導致我回到基本上是兩個應用程序之間安全地共享憑據的最初問題,即使它們是通過相同的容器提供的。 – Nick 2010-03-23 14:01:28