JSESSIONID是如何通过的?作为头参数还是cookie参数?

时间:2017-07-21 12:49:03

标签: java jsp session authentication spring-security

用户进行身份验证后,无需再次对用户的后续请求进行身份验证。这是使用JSESSIONID实现的 但我不确定的是,JSESSIONID是如何通过的?作为标题字段或cookie字段。或者由应用程序开发人员选择一种或另一种方法。

当spring-security用于身份验证和授权时,有人可以解释这是如何工作的。

3 个答案:

答案 0 :(得分:2)

对于特定用户,JSESSIONID将是相同的,除非用户会话被销毁。如果要将同一会话设置回用户,可以从HttpServletRequest获取JSESSIONID并将其设置为HttpServletResponse。这就是内部发生的事情。

每个请求都与会话相关联,不同用户将使用不同的会话访问您的应用程序。

如果您的用户浏览器在任何情况下都松开了JSESSIONID,但您希望他继续使用您的应用程序,则必须进行设置。

默认情况下,存储在Cookie中的JSESSIONID是清除Cookie的原因,您将从已登录的所有应用程序中注销。

答案 1 :(得分:0)

JSESSIONID是由J2EE标准定义的cookie,它与cookie HTTP标头中的其他cookie一起传递,其值遵循[cookie1] = [value1]格式; [cookie2] = [value2]; ...

示例:

  File "<input>", line 2, in <module>
  File "C:\Program Files (x86)\Eclipse\Sumo\tools\traci\__init__.py", line 95, in start
    sumoProcess = subprocess.Popen(cmd + ["--remote-port", str(port)])
  File "D:\Anaconda\envs\untitled1\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "D:\Anaconda\envs\untitled1\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

答案 2 :(得分:0)

它将作为

发送

Cookie:JSESSIONID =其他; customCookie = SOMEOTHERTHIG

在标题中