JSESSIONID存储在哪里?(JavaEE的)

mar*_*xin 6 java applet jsp jsessionid java-ee

我有两个应用程序 - 一个Java EE Web应用程序和一个Java SE applet.我想通过JSESSIONID(由Web应用程序创建)在applet中验证用户.

所以有一个问题 - 如何将这个JSESSIONID与特定用户相关联?

如何检查(在Web服务器应用程序端)哪个用户由这样的JSESSIONID表示?在applet中,我将从cookie中读取它,然后我想编写一个简单的Servlet,它将接受此JSESSIONID作为POST消息.此后,当JSESSIONID不好时,我想在响应中写任何内容,如果JSESSIONID是好的(即代表某人),则用户信息.

有谁知道如何做到这一点?

Tom*_*icz 10

JSESSIONID是一种你通常不应该关心的低级机制.在服务器端,servlet容器透明地转换JSESSIONID为servlet中HttpSession可用的对象.会话ID也使用Cookie标头或URL重写透明地传递给服务器.

因此,如果您点击链接或在网页中发布普通表单,浏览器会自动传递JSESSIONIDcookie或将其附加到URL.

您的设计有一个主要缺陷:安全的servlet容器应该HttpOnlyJSESSIONIDcookie 添加属性(请参阅:如何在tomcat/java webapps中配置HttpOnly cookie?)这是为了防止JavaScript JSESSIONID出于安全原因读取cookie - 比如劫持用户会话.您的小程序可能甚至看不到该cookie!

我不太了解,但我建议你通过Web浏览器以某种方式执行HTTP请求,以便自动处理安全标识(cookie).