两个SpringSecurity本地项目登录冲突问题(Cookie不区分端口号)

问题产生

因为最近要做资源认证服务器,就搞了两个集成SpringSecurity的项目,在开启了loginPage("/portal/login")后,登录的时候发现了一个问题:8085端口的项目A和8080端口的项目B不可以同时登录,A登录了,B再登录就会把A的登录状态刷新掉。

问题原因

经过一番研究,原因是session会在浏览器保存一个cookie用来识别session,看上去没什么问题,但是cookie是不区分端口号的,在同一个ip下cookie是共享的。
也就是说,我们本地项目都是localhost,域名相同,端口号不同。但他们都会共享一个cookie,导致两个项目登录所用的cookie会互相覆盖。

解决方案

我们可以在hosts文件配置不同的域名,通过不同的域名来访问我们的本地项目。如:

	127.0.0.1    www.qbq.com
	127.0.0.1    www.aaa.com

我们可以分别访问www.qbq.com:8085,www.aaa.com:8080。这样他们的cookie就不会发生冲突了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章