【发布时间】:2017-08-20 23:49:46
【问题描述】:
我正在使用使用 Rest 架构在 java 中完成的一些 Web 服务,我的客户端是一个使用 HttpConnection 检索数据的移动应用程序。为了控制身份验证和授权,我使用了由 @SessionScoped 类管理的 cookie,但是我不知道如何使会话通过请求持续存在。问题基本上是我在@RequestScoped 的其他服务中注入了会话管理器,但是由于会话没有持久化,我总是为@SessionScoped 类检索不同的实例,从而删除我之前拥有的所有cookie 或记录。查看请求标头,我注意到 cookie JSESSIONID,我认为这是由 tomcat 发送的以保持会话,因此已经尝试在下一个请求中发送相同的 cookie,但是我没有得到任何结果。
【问题讨论】:
-
当你说“HttpConnection”时,你真的是指
HttpURLConnection吗?如果是这样,请继续:stackoverflow.com/questions/2793150/… -
不...不幸的是我使用的是JavaME,这就是为什么它是HttpConnection
-
在我的标题中,我收到了类似这样的标题:1,Set-Cookie:JSESSIONID=C2j31psXI5bEhlXwXdormU3L;路径=/简单登录;安全
-
您需要将其作为标题发回,名称为
Cookie,值为JSESSIONID=C2j31psXI5bEhlXwXdormU3L。 -
发现问题..因为它是JavaME httpConnection,所以标头设置如下:connection.setRequestProperty("Cookie","sessionId="+ApplicationPreferences.getInstance().getSessionCookieHeader()) ; connection.setRequestProperty("Cookie","JSESSIONID="+ApplicationPreferences.getInstance().getJavaSessionCookieHeader());但是它覆盖了 Cookie 属性,我怎样才能添加许多具有相同名称的请求属性??
标签: java tomcat java-me session-cookies httpconnection