我在发布问题之前已经做了一些功课,我明白,如果我的服务器没有在规定的时间限制内收到任何请求,Session-Timeout会使我的会话过期。
但我怀疑是:
我的服务器很无聊,即它根本不会保留会话。
对于每个请求,我检查令牌是否存在,我将授予请求,否则拒绝请求,如果用户选择退出,我将该令牌标记为无效。因此,如果有人使用该令牌,则下次不应访问受保护的api。
是的,我在生成新令牌时使用到期时间。
这是否意味着,我不必在我的web.xml中设置“session-timeout”?
或者我错过了什么?
谢谢。
/ ***** UPDATED ****** /
让我添加更多信息,我从用户那里获取“用户名”和“密码”,并生成有效期为1天的令牌。并且对于每个api请求,我希望用户向我发送此令牌,然后只有我会让他走得更远。 当他退出时,我将此标记标记为无效,因此下次他尝试使用任何API时,我再次问他“用户名”和“密码”< - 这就是我假设他的会话结束时他点击了记录我出去了。
现在,我怀疑是
假设用户第一次来给我“用户名”和“密码”,我生成一个令牌并将其交给他,我设置令牌的到期时间为1天。
现在我设置Session-timeout = 20分钟,这意味着如果用户在20分钟内没有发出任何请求,他的会话将结束。
但我相信,如果在20分钟后他会点击任何API,服务器将授予请求,因为令牌仍然有效(用户尚未注销)。
那么使用“SESSION-TIMEOUT”是什么意思?
答案 0 :(得分:0)
在JEE Servlet应用程序中,会话是与cookie关联的值。在幕后,servlet容器将此值用作在服务器内存中存储带参数的映射的键。 web.xml中的会话超时值确定用户在cookie值到期之前可以处于非活动状态的时间长度,并且映射是为垃圾回收处理的。