SessionId 在 Spring Boot Application 中的每个 curl 请求中不断变化
Posted
技术标签:
【中文标题】SessionId 在 Spring Boot Application 中的每个 curl 请求中不断变化【英文标题】:SessionId keeps changing in every curl request in Spring Boot Application 【发布时间】:2021-09-11 07:57:40 【问题描述】:我有以下返回 SessionId 的 RestController:
@GetMapping(value = "/api/sessionid")
public @ResponseBody String getSessionId()
return RequestContextHolder.currentRequestAttributes().getSessionId();
当我使用 Postman 或 Chrome 浏览器 时,它会在每个请求上返回相同的 SessionId。但是当我使用 CURL 来获取 SessionId 时,它会在每个请求上返回一个 不同 SessionId。
为什么我使用 CURL 时 SessionId 会改变?
【问题讨论】:
因为你没有发送会话cookie,如果你使用浏览器默认发送。 【参考方案1】:当您使用 Chrome 向服务器发送请求时:服务器使用 cookie 作为会话跟踪机制来识别您的会话。 当您使用 CURL 时:没有会话跟踪机制,这就是服务器为每个请求创建一个新会话的原因。
您可以在此处阅读有关会话跟踪的更多信息:https://javapapers.com/servlet/explain-the-methods-used-for-session-tracking/
【讨论】:
以上是关于SessionId 在 Spring Boot Application 中的每个 curl 请求中不断变化的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring websocket 的 SessionDisconnectEvent 中使用 sessionId
Spring Security sessionID 作为令牌配置