Cookie支持-有问题吗?
原始问题/背景:
我们在Openshift中运行了基于servlet / JSON的API,openshift中使用的web服务器是Tomcat。
我们将信息存储到httpsession中,当直接针对openshift / tomcat (POST / GET)使用时,一切工作正常。但是,当我们针对现有方法配置apigee时,会话就会丢失。内容被正确地存储在服务器端的会话中,但是当第二个请求从apigee进入tomcat时,会话就“丢失”了。
获取会话的一段java代码是纯httpsession.getRequest()。如上所述,当直接使用后端时,这可以很好地工作。当通过apigee使用请求时,是否需要一些额外的步骤(cookie等)来维护会话?
更新调查结果;
通过简短的调试和流量监控,可以确认apigee中错误的原因是它没有将JSessionId传递给请求。这意味着应该在API代理设置/配置中以某种方式启用cookies支持。
有人知道这个问题在哪里或者是否可以解决吗?
发布于 2014-03-02 04:13:07
首先,cookies不是正确的RESTful有效负载的一部分--如果获取了头文件,就可以将它们作为generate token策略的一部分与access_token一起存储。
除此之外,您应该能够将cookie传递回请求的应用程序,然后让应用程序将它们传递回API --我的jokeindex API允许您这样做。
确保您的流中没有任何AssignMessage策略意外地剥离了标头--如下所示:
<Set>
<Headers />
</Set>因为这将删除所有标头。此外,您可以查看Apigee中的Trace工具来检查每个策略步骤,以查看是否正在从请求有效负载中剥离Cookie:头。
发布于 2014-03-13 17:09:21
当你的资源在地址"http://yourdomain.com/somewhere/“上,你从apigee API重定向到该资源,例如通过url:http://yourapi.apigee.net/v0/myresource”你从你的服务器得到的是/某处/不是v0/http://yourdomain.com/somewhere//某处的cookie,所以基本上当浏览器得到cookie时,它没有把它放在正确的位置并丢弃它。至少我是这样的。
发布于 2014-03-02 01:04:50
关于这一点,你应该在@bissell上搜索一下,但我发现这篇文章可能会有帮助:http://community.apigee.com/groups/learn-create-and-manage-apis/some-basic-questions-new
此外,您还可以通过向捕获JSessionId的请求添加“提取变量”策略,然后添加“分配消息”策略将其添加回请求来修复问题。
您可以通过Platform>Dashboard>API Proxies>YOUR API>Develop接口分配策略
https://stackoverflow.com/questions/22117050
复制相似问题