2012-05-21 54 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 分辨率 “延期”

相关问题