2012-05-21 53 views
1

在我的Flex應用程序中,我需要對j_security_check表單進行身份驗證(這看起來像一種流行的身份驗證方式),在HTTP POST中提供j_usernamej_password字段作爲參數請求。我打算用一個簡單的HTTPService(我知道的其他選項是URLLoader,但它提供了相同的結果)這樣做。發送POST請求後,我等待jsessionid作爲SetCookie的響應。但是,我收到一個html頁面,該頁面應該在我收到jsessionid後纔會顯示。如何從使用Flex的302 HTTP狀態響應獲取cookie HTTPService

這裏是什麼,實際上是在HTTP數據包而言是這樣的:

  1. 我POST請求[baseurl]/j_security_checkj_usernamej_password
  2. HTTP狀態含有jsessionidSetCookie
  3. 302響應GET請求(我沒有發送它!)從我的申請到[baseurl]/login.jsp只包含jsessionid與前一個數據包一起收到。
  4. 一個HTTP狀態200響應,包含一個html頁面,應該在成功登錄後在Web瀏覽器中查看該頁面。

我需要jsessionid的值與另一個基於SOAP的Web服務一起用作身份驗證方法。但我似乎無法獲得它 - Flex HTTPService默默捕獲302響應併發送下一個GET;之後,曲奇無處可尋。

..但是,cookie肯定被緩存在Flex的某處,因爲它被提供給來自任何HTTPService實例的對該服務器的所有進一步請求!

我不知道它是否會使用web服務。因此我的問題是:如何在Flex中獲得這個cookie的價值?

回答

0

顯然,在收到一個setCookieHTML標頭後,Flex將它提供給任何後續的HTTP請求 - 它可以是HTTPService或SOAP WebService。我還沒有找到方法來獲得這個setCookie的價值,但這種情況對我的情況無論如何都適用。

UPDATE:這是在Adobe Flex的JIRA一個確認的錯誤:http://bugs.adobe.com/jira/browse/SDK-15049 分辨率 「延期」

相關問題