2010-05-28 52 views
1

我們正在構建一些通過BlazeDS暴露給我們的Flex客戶端應用程序的Java對象。所以基本上BlazeDS messagebroker servlet實例化並調用這些對象的方法來響應客戶端請求。很棒。如何在不使用FlexContext的情況下從Java服務對象訪問Principal?

我們正在使用基於應用服務器的身份驗證,並對remoting-config.xml文件元素中的<destination>元素設置了安全約束,以防止未經身份驗證的客戶端能夠訪問這些遠程Java對象。再次,工作正常。

但是,在這些Java對象的實現中有幾個地方需要獲取當前登錄用戶的用戶名。現在我們通過FlexContext.getUserPrincipal()來做到這一點,它可以訪問這個,但是我們有一個嘮叨的問題,我們不喜歡這些對象的實現(服務層)對BlazeDS類有很大的依賴性。但我們不確定還有其他方法可以訪問這個。這同樣適用於訪問ServletContext等。

任何想法?

+0

更新:我們發現本教程提出了一個解決方案,它不是很優雅,但它確實有效。我也認爲詹姆斯的解決方案是可行的。 http://etutorials.org/Macromedia/Fash+remoting.+the+definitive+guide/Part+II+The+Server-Side+Languages/Chapter+7.+Flash+Remoting+and+Java/7.9+引用+的+請求和+會話/ – Marplesoft 2010-05-28 21:35:18

回答

1

使用BlazeDS的MessageBrokerServlet時沒有辦法解決這個問題。我能想到的唯一選擇是編寫自己的servlet,它執行AMF,like this one

相關問題