springboot集成shiro的session污染问题

本文介绍了在SpringBoot应用中使用Shiro进行权限管理时遇到的Session污染问题。当两个使用Shiro的系统部署在同一服务器并共用同一域名时,导致用户在切换系统时需要重新登录。问题的根本原因是Shiro基于Session的权限管理机制,同一域名下Session信息互相覆盖。解决方案包括:修改Shiro配置文件中Session的key值,确保每个项目使用独立的Session名称;或者通过配置域名服务器,使每个系统拥有独立域名,避免Session冲突。
摘要由CSDN通过智能技术生成

        近期同事在项目中遇到了shiro冲突的问题,问题起因是这样的,有两套系统,系统a和系统b。两套系统均使用shiro做的权限管理,之前部署在两台机器上。使用浏览器打开a系统后另开页签打开b系统,互不干扰都能正常使用,后因业务迁移,两套系统部署到了一个机器上,再使用浏览器打开a系统后再开b系统。问题就出现了,之前a系统要求重新登录。

        原因分析,shiro是基于session会话的权限管理,那么浏览器打开一次就会产生一个session,在session活跃期间,只要你浏览器不关闭,session信息是一直有效的。其session信息是写在cookie里的。如果你是两个域的话,session信息不回互相干扰。但如果你是一个域问题就来了,a登录后session信息会写入浏览器cookie里,当b登录时session信息更新此域的信息。a原始登录的session信息就会失效。因此b登录后,会挤占a的session信息。

        原因分析明白,如何解决,其实很简单:

        方案一:

            在shiro配置文件的sessionManager&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值