会话ID cookie在gwt rpc中
假设我正在编写自己的会话代码,那么在java中生成唯一且安全的会话ID cookie的正确方法是什么。
我不应该自己动手,而是使用已经标准化的东西吗?
我正在使用gwt和谷歌应用引擎平台。
如何在浏览器/服务器重启期间保持会话持续存在?
在GWT中使用Servlet会话
在远程服务实现类中:
String jSessionId=this.getThreadLocalRequest().getSession().getId();
在客户端代码中:
String jSessionId=Cookies.getCookie("JSESSIONID");
Enabling_Sessions
AppEngine上-web.xml中
true
不,你不应该自己动手。
会话ID需要加密随机(不能从已知来源猜测)。 很难自己做到这一点。
理想情况下,您应该依赖底层框架的会话管理function。 Servlets和JSP,Struts和Spring都有这种支持,您应该使用它。
在极少数情况下,您正在编写自己的框架而没有可依赖的基础会话管理function,您可以从java.security.SecureRandom类开始。 当然,不要在这里重新发明轮子,因为破坏的会话管理与破坏的身份validation相同。
更新
鉴于您使用的是Google App Engine,您应该依赖引擎提供的会话管理function。 它似乎默认没有打开 。