Tomcat集群环境下实现单点登录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fighting_sxw/article/details/85162920

一、问题分析
在tomcat集群环境下,session是不能在tomcat之间共享的,所以会导致如下问题,如图所示:

在这里插入图片描述

通一个浏览器发送多次请求,请求可能会被nginx转发到不同的tomcat上,因为session不能共享,可能会导致登录成功后,发起其他的请求,返回给用户的依旧是让其进行登录操作,所以需要实现登录一次后,登录信息在多个tomcat之间共享,就是所谓的单点登录。

二、解决办法
单点登录有很多解决办法,这里提供的解决思路是,在tomcat集群中增加一个共享的redis数据库,将用户的登录信息存放在redis中,而不是各自的session中,达到用户登录信息在多个tomcat之间共享的目的,从而实现单点登录。如下图:
在这里插入图片描述

三、代码实现

https://github.com/shaoxiaowen/Single_SignOn_demo

猜你喜欢

转载自blog.csdn.net/fighting_sxw/article/details/85162920