【发布时间】:2012-04-29 05:18:06
【问题描述】:
我的设置如下
- 在 /myApp/mainServlet/ 下可访问的主应用程序 servlet
- 一个小小的“手工”soap 代理,它为来自客户端的soap 调用添加安全标头(用户名、密码)
- 与主 servlet 对话(通过 BlazeDS 接口)的 Flex 客户端,并通过此 soap 代理向第三方发送一些 soap 调用
flex 客户端有一个会话 id,它在它第一次与主 servlet 对话时设置,它返回一个 HTTP 标头,例如“Set-Cookie:”JSESSION: something; Path=/myApp"。然后将此 cookie 发送到服务器,以告知客户端关联到哪个会话。
问题在于,小肥皂代理也返回一个带有会话 id 的 cookie(对于通过它进行的每个调用)——然后 Flex 客户端在与主 servlet 通信时使用这些 cookie。它不知道这些其他会话 id,然后当然没有任何作用......
我不希望从 soap 代理返回会话 cookie,并且我已经验证通过告诉 Apache 前端去除所有来自肥皂代理。不幸的是(由于一些设置限制),这不是我可以投入生产的方式,所以我需要以编程方式修复它。
如何让 servlet 不尝试设置任何会话 ID? 我相信我已经看到了告诉 Jetty(应用服务器)不要发送会话 ID 的方法,但这也会影响main servlet 也可以这样做,而且也不是可移植的。
代理 servlet 是一个非常基本的 Spring Controller(只是实现接口),所以基本上只是一个简单的 servlet。
【问题讨论】:
标签: java apache-flex session session-cookies blazeds