gpt4 book ai didi

java - 通过合并自定义 HTTP header 支持每个浏览器多个 session

转载 作者:行者123 更新时间:2023-12-01 09:06:07 26 4
gpt4 key购买 nike

this article ,它解释了 Spring Session 如何通过合并第二个标识符来支持一个浏览器的多个 session 。默认情况下,此标识符似乎称为 _s,它是请求 URL 中的查询字符串。

我正在尝试实现完全相同的事情,但我想使用自定义 HTTP header 而不是查询字符串。我对整个想法有点陌生,有人可以告诉我这是否可能以及从哪里开始?

最佳答案

查询字符串参数_s用于定位用于给定请求的 session 。在 official documentation ,此参数称为 session 别名参数

如果您浏览source code for Spring Session ,您会注意到提取 session 别名参数的任务被委托(delegate)给 HttpSessionManager界面。在当前的代码库中,该接口(interface)只有一种实现 - CookieHttpSessionStrategy ,它从查询字符串中提取参数(请参阅链接源代码中的第 183 行)。

因此,当前实现无法从 HTTP header 中提取参数值(因为唯一可用的实现只能从查询字符串中提取参数值)。

但是,您可以子类化 CookieHttpSessionStrategy,重写 getCurrentSessionAlias 方法以从 header 中提取参数,并重写应用程序的默认 session 策略,如下所示:

@Bean
public HttpSessionStrategy httpSessionStrategy() {
return new MyHttpSessionStrategy();
}

其中,MyHttpSessionStrategy 是您编写的自定义策略。

关于java - 通过合并自定义 HTTP header 支持每个浏览器多个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41275269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com