问道session_id或sessionid_v1.0.0

本文深入探讨JSessionID的工作原理及应用场景,包括其在登录过程中的作用、如何通过浏览器获取及跟踪,以及在不同请求间的变化情况。同时,还介绍了禁用cookie时的URL重写策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

v1.0.0
token、jwt、oauth2标准,统统都玩腻了?不是。那为什么突然调研session?因为也很重要呀。

开始

登录原理
git clone https://gitee.com/lcg0124/bootdo

sql
启动
登录成功

jsessionid

使用Chrome浏览器,按F12,随便点一个接口,观察XHR,找到刚才访问的接口,找到请求头,找到cookie,记住cookie里的jsessionid

Cookie: csrftoken=v4a4CLBKD7CxSsPf66qmph2e2MPU6xmpPZ142dBg8Dh4q0pa0ynOeA9wwmHAtZOW;
JSESSIONID=e3baf1ce-3d08-4601-8f90-444b984638c1;
NG_TRANSLATE_LANG_KEY=%22en%22

再访问另一个接口,继续观察jsessionid:

Cookie: csrftoken=v4a4CLBKD7CxSsPf66qmph2e2MPU6xmpPZ142dBg8Dh4q0pa0ynOeA9wwmHAtZOW; 
JSESSIONID=e3baf1ce-3d08-4601-8f90-444b984638c1; 
NG_TRANSLATE_LANG_KEY=%22en%22

是一样的。
退出
再登录
再调接口,
访问一个裸奔的接口,也就是不需要授权就能访问的接口,观察发现没有jsessionid了:

Cookie: csrftoken=v4a4CLBKD7CxSsPf66qmph2e2MPU6xmpPZ142dBg8Dh4q0pa0ynOeA9wwmHAtZOW; 
NG_TRANSLATE_LANG_KEY=%22en%22

裸奔配置:

ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(securityManager);
        shiroFilterFactoryBean.setLoginUrl("/login");
        shiroFilterFactoryBean.setSuccessUrl("/index");
        shiroFilterFactoryBean.setUnauthorizedUrl("/403");
        LinkedHashMap<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
filterChainDefinitionMap.put("/blog", "anon");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;

到登录页面,查看验证码接口,是img的,观察jsessionid:

Cookie: csrftoken=v4a4CLBKD7CxSsPf66qmph2e2MPU6xmpPZ142dBg8Dh4q0pa0ynOeA9wwmHAtZOW; 
NG_TRANSLATE_LANG_KEY=%22en%22; 
JSESSIONID=51918ca9-0872-4373-8dc9-e871a11da7f8

与上文的id不一样了,再观察id的结构,——应该是个uuid。
说明uuid有被删除的可能,多次刷新登录页面,发现该uuid没有变,那么触发删除大概是在logout的时候了。
从英文单词可以看出它叫会话(session),那么关闭当前页面,重新打开,看下id会变不,发现没变,那么关闭浏览器再打开试试,注意,用同一个浏览器,还是查看图片验证码接口,发现id不见了:
在这里插入图片描述
是不是还没设置到cookie?于是观察响应头,果然:
在这里插入图片描述
哈?原来这个id是后台返回的呀。当然了,session嘛,当然是服务端session呀。
在任意请求添加这句代码:

System.out.println(String.format("jsessionid == %s", session.getId()));

out:
在这里插入图片描述
打开一个新tab页(id不变),或者换一个浏览器(不一样了)观察jsessionid。
登录成功,关闭浏览器,重新打开浏览器,直接访问首页,是不是登录失效了?为什么?既然叫session嘛,会话,会话取消了,就中断退出了呀。当然,这里还与过期时间有关,如果有印象的话,你应该记得过期日期是1970.
服务端是如何取得cookie里的jsessionid的?tomcat服务端可以操作cookie,并从中获得id,前提是cookie里有传,这一点也类似后来发展起来的无状态token访问。
禁用了cookie咋办?url重写,将jsessionid写到url。

2025-06-12 05:06:36 +0000) [splunk -> flushMessages] { "events" : [ { "_sessionID" : "QF\/J0aQTTqKUIXYomUbzkw==", "_isDeviceEligibleForPE" : false, "_canShareWithDevelopers" : false, "_serviceName" : "activitySignals", "_internal" : 0, "_build" : "22F76", "_productModel" : "iPhone15,2", "_osName" : "iOS", "Locale" : "CN", "_clientName" : "wallet", "_sender" : "WLT-2", "_osVersion" : "18.5" }, { "_productModel" : "iPhone15,2", "_sender" : "WLT-2", "_serviceName" : "activitySignals", "_clientName" : "wallet", "_sessionID" : "QF\/J0aQTTqKUIXYomUbzkw==", "_osVersion" : "18.5", "_osName" : "iOS", "_canShareWithDevelopers" : false, "StorebagVersion" : "1.0.0-1061-g10514c0", "_isDeviceEligibleForPE" : false, "_build" : "22F76", "_internal" : 0, "GracefulTermination" : false } ], "postTime" : 1749704796, "clientId" : "" } (2025-06-12 05:06:37 +0000) [splunk -> flushMessages] { "postTime" : 1749704797, "clientId" : "", "events" : [ { "_sessionID" : "nBl5Cxn\/SOmZQa9tFWg8xw==", "_internal" : 0, "_osName" : "iOS", "_osVersion" : "18.5", "_canShareWithDevelopers" : false, "Locale" : "CN", "_build" : "22F76", "_clientName" : "wallet", "_serviceName" : "activitySignals", "_sender" : "WLT-2", "_isDeviceEligibleForPE" : false, "_productModel" : "iPhone15,2" } ] } (2025-06-12 05:06:37 +0000) [splunk -> flushMessages] { "postTime" : 1749704797, "clientId" : "", "events" : [ { "_sessionID" : "hVHLj9jLQga2lgelNVHKvQ==", "_internal" : 0, "_osName" : "iOS", "_osVersion" : "18.5", "_canShareWithDevelopers" : false, "Locale" : "CN", "_build" : "22F76", "_clientName" : "wallet", "_serviceName" : "activitySignals", "_sender" : "WLT-2", "_isDeviceEligibleForPE" : false, "_productModel" : "iPhone15,2" }, { "_osName" : "iOS", "_canShareWithDevelopers" : false, "StorebagVersion" : "1.0.0-1061-g10514c0", "_isDeviceEligibleForPE" : false, "_serviceName" : "activitySignals", "GracefulTermination" : false, "_osVersion" : "18.5", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "_internal" : 0, "_build" : "22F76", "_sender" : "WLT-2", "_sessionID" : "hVHLj9jLQga2lgelNVHKvQ==" } ] } (2025-06-12 05:06:38 +0000) [splunk -> flushMessages] { "postTime" : 1749704798, "clientId" : "", "events" : [ { "_sessionID" : "FmzCWAUWRUi6yhl+IBDICA==", "_internal" : 0, "_osVersion" : "18.5", "Locale" : "CN", "_canShareWithDevelopers" : false, "_osName" : "iOS", "_build" : "22F76", "_clientName" : "wallet", "_serviceName" : "activitySignals", "_sender" : "WLT-2", "_productModel" : "iPhone15,2", "_isDeviceEligibleForPE" : false } ] } (2025-06-13 01:49:55 +0000) [splunk -> flushMessages] { "postTime" : 1749779395, "clientId" : "", "events" : [ { "Locale" : "CN", "_internal" : 0, "_serviceName" : "activitySignals", "_sender" : "WLT-2", "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "_build" : "22F76", "_sessionID" : "p5T1xjaGSa+dsKizVpFRdw==", "_canShareWithDevelopers" : false, "_productModel" : "iPhone15,2", "_osName" : "iOS", "_clientName" : "wallet" }, { "GracefulTermination" : false, "_productModel" : "iPhone15,2", "_osName" : "iOS", "_osVersion" : "18.5", "_isDeviceEligibleForPE" : false, "_sessionID" : "p5T1xjaGSa+dsKizVpFRdw==", "StorebagVersion" : "1.0.0-1061-g10514c0", "_internal" : 0, "_sender" : "WLT-2", "_build" : "22F76", "_canShareWithDevelopers" : false, "_serviceName" : "activitySignals", "_clientName" : "wallet" } ] } (2025-06-13 01:49:55 +0000) [splunk -> flushMessages] { "postTime" : 1749779395, "clientId" : "", "events" : [ { "_productModel" : "iPhone15,2", "_osVersion" : "18.5", "_canShareWithDevelopers" : false, "_osName" : "iOS", "_sender" : "WLT-2", "Locale" : "CN", "_sessionID" : "mOrWwjPYSSuzFpuNgkHKvw==", "_internal" : 0, "_clientName" : "wallet", "_isDeviceEligibleForPE" : false, "_serviceName" : "activitySignals", "_build" : "22F76" }, { "_sessionID" : "mOrWwjPYSSuzFpuNgkHKvw==", "_clientName" : "wallet", "StorebagVersion" : "1.0.0-1061-g10514c0", "_osName" : "iOS", "_productModel" : "iPhone15,2", "_serviceName" : "activitySignals", "_isDeviceEligibleForPE" : false, "_canShareWithDevelopers" : false, "_sender" : "WLT-2", "GracefulTermination" : false, "_internal" : 0, "_osVersion" : "18.5", "_build" : "22F76" } ] } (2025-06-13 01:49:55 +0000) [splunk -> flushMessages] { "events" : [ { "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_serviceName" : "activitySignals", "_build" : "22F76", "_sender" : "WLT-2", "Locale" : "CN", "_sessionID" : "+WGOG1lwSWOuiSXrsI33FQ==", "_internal" : 0, "_clientName" : "wallet", "_osName" : "iOS", "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5" }, { "_osName" : "iOS", "_isDeviceEligibleForPE" : false, "_build" : "22F76", "_serviceName" : "activitySignals", "_osVersion" : "18.5", "StorebagVersion" : "1.0.0-1061-g10514c0", "_internal" : 0, "_sender" : "WLT-2", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "GracefulTermination" : false, "_sessionID" : "+WGOG1lwSWOuiSXrsI33FQ==", "_canShareWithDevelopers" : false } ], "postTime" : 1749779395, "clientId" : "" } (2025-06-13 01:49:55 +0000) [splunk -> flushMessages] { "postTime" : 1749779395, "clientId" : "", "events" : [ { "_osVersion" : "18.5", "_sender" : "WLT-2", "Locale" : "CN", "_serviceName" : "activitySignals", "_internal" : 0, "_build" : "22F76", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_osName" : "iOS", "_sessionID" : "YDbusr\/KSMyIOzT8TICl+Q==", "_isDeviceEligibleForPE" : false } ] } (2025-06-13 01:49:56 +0000) [splunk -> flushMessages] { "events" : [ { "_osVersion" : "18.5", "_sender" : "WLT-2", "Locale" : "CN", "_serviceName" : "activitySignals", "_internal" : 0, "_build" : "22F76", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_osName" : "iOS", "_sessionID" : "bPVIvE5lTcyBG2j58LbpLA==", "_isDeviceEligibleForPE" : false }, { "GracefulTermination" : false, "_isDeviceEligibleForPE" : false, "_productModel" : "iPhone15,2", "_osVersion" : "18.5", "_build" : "22F76", "_clientName" : "wallet", "_internal" : 0, "_sessionID" : "bPVIvE5lTcyBG2j58LbpLA==", "_canShareWithDevelopers" : false, "StorebagVersion" : "1.0.0-1061-g10514c0", "_serviceName" : "activitySignals", "_sender" : "WLT-2", "_osName" : "iOS" } ], "postTime" : 1749779396, "clientId" : "" } (2025-06-13 01:49:56 +0000) [splunk -> flushMessages] { "postTime" : 1749779396, "clientId" : "", "events" : [ { "_osVersion" : "18.5", "_sender" : "WLT-2", "Locale" : "CN", "_serviceName" : "activitySignals", "_internal" : 0, "_build" : "22F76", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_osName" : "iOS", "_sessionID" : "N7XZBwIZRBelxc5JofGRYg==", "_isDeviceEligibleForPE" : false } ] } (2025-06-13 01:49:56 +0000) [splunk -> flushMessages] { "events" : [ { "_osVersion" : "18.5", "_sender" : "WLT-2", "Locale" : "CN", "_serviceName" : "activitySignals", "_internal" : 0, "_build" : "22F76", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_osName" : "iOS", "_sessionID" : "+EVCvFoJT4ODiwolR3iYjA==", "_isDeviceEligibleForPE" : false } ], "postTime" : 1749779396, "clientId" : "" } (2025-06-14 03:19:41 +0000) [splunk -> flushMessages] { "postTime" : 1749871181, "clientId" : "", "events" : [ { "_sender" : "WLT-2", "_osName" : "iOS", "_sessionID" : "QP42DIz\/TBKOLL8D+MuwDg==", "_build" : "22F76", "_canShareWithDevelopers" : false, "_internal" : 0, "Locale" : "CN", "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "_clientName" : "wallet", "_serviceName" : "activitySignals", "_productModel" : "iPhone15,2" }, { "GracefulTermination" : false, "_productModel" : "iPhone15,2", "_osName" : "iOS", "_osVersion" : "18.5", "_isDeviceEligibleForPE" : false, "_sessionID" : "QP42DIz\/TBKOLL8D+MuwDg==", "StorebagVersion" : "1.0.0-1061-g10514c0", "_internal" : 0, "_sender" : "WLT-2", "_build" : "22F76", "_canShareWithDevelopers" : false, "_serviceName" : "activitySignals", "_clientName" : "wallet" } ] } (2025-06-14 03:19:42 +0000) [splunk -> flushMessages] { "postTime" : 1749871182, "clientId" : "", "events" : [ { "_osName" : "iOS", "_build" : "22F76", "_productModel" : "iPhone15,2", "_osVersion" : "18.5", "Locale" : "CN", "_sender" : "WLT-2", "_sessionID" : "xFokL+gsSHyKuGb92nxU8A==", "_internal" : 0, "_clientName" : "wallet", "_isDeviceEligibleForPE" : false, "_serviceName" : "activitySignals", "_canShareWithDevelopers" : false }, { "_canShareWithDevelopers" : false, "_clientName" : "wallet", "GracefulTermination" : false, "_sessionID" : "xFokL+gsSHyKuGb92nxU8A==", "_osName" : "iOS", "_build" : "22F76", "_isDeviceEligibleForPE" : false, "_sender" : "WLT-2", "StorebagVersion" : "1.0.0-1061-g10514c0", "_serviceName" : "activitySignals", "_internal" : 0, "_productModel" : "iPhone15,2", "_osVersion" : "18.5" } ] } (2025-06-14 03:19:42 +0000) [splunk -> flushMessages] { "events" : [ { "_osVersion" : "18.5", "_build" : "22F76", "_productModel" : "iPhone15,2", "_serviceName" : "activitySignals", "_sender" : "WLT-2", "Locale" : "CN", "_sessionID" : "tNn4EFufSg6OHYC\/Ew7IJg==", "_internal" : 0, "_clientName" : "wallet", "_osName" : "iOS", "_isDeviceEligibleForPE" : false, "_canShareWithDevelopers" : false } ], "postTime" : 1749871182, "clientId" : "" } (2025-06-15 02:05:18 +0000) [splunk -> flushMessages] { "events" : [ { "_canShareWithDevelopers" : false, "_internal" : 0, "_sender" : "WLT-2", "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "Locale" : "CN", "_sessionID" : "xYr7LEEHRfyxCQLMwo9uqQ==", "_osName" : "iOS", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "_serviceName" : "activitySignals", "_build" : "22F76" }, { "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "StorebagVersion" : "1.0.0-1061-g10514c0", "_serviceName" : "activitySignals", "_build" : "22F76", "_clientName" : "wallet", "_productModel" : "iPhone15,2", "GracefulTermination" : false, "_sessionID" : "xYr7LEEHRfyxCQLMwo9uqQ==", "_sender" : "WLT-2", "_osName" : "iOS", "_internal" : 0, "_canShareWithDevelopers" : false } ], "postTime" : 1749953118, "clientId" : "" } (2025-06-15 02:05:18 +0000) [splunk -> flushMessages] { "postTime" : 1749953118, "clientId" : "", "events" : [ { "_clientName" : "wallet", "_internal" : 0, "_build" : "22F76", "_osName" : "iOS", "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "_serviceName" : "activitySignals", "Locale" : "CN", "_sender" : "WLT-2", "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_sessionID" : "EtIqV2atTJOqWE5qHwRp2Q==" } ] } (2025-06-15 02:05:19 +0000) [splunk -> flushMessages] { "events" : [ { "_clientName" : "wallet", "_internal" : 0, "_build" : "22F76", "_osName" : "iOS", "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "_serviceName" : "activitySignals", "Locale" : "CN", "_sender" : "WLT-2", "_productModel" : "iPhone15,2", "_canShareWithDevelopers" : false, "_sessionID" : "c3hH8Dz1SbWOzkXGjpSv4A==" }, { "StorebagVersion" : "1.0.0-1061-g10514c0", "_serviceName" : "activitySignals", "_sender" : "WLT-2", "_build" : "22F76", "GracefulTermination" : false, "_isDeviceEligibleForPE" : false, "_osVersion" : "18.5", "_sessionID" : "c3hH8Dz1SbWOzkXGjpSv4A==", "_productModel" : "iPhone15,2", "_osName" : "iOS", "_internal" : 0, "_clientName" : "wallet", "_canShareWithDevelopers" : false } ], "clientId" : "",帮我分析
最新发布
06-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值