单点登录-解析

     单点登录(SSO)是大型网站必要的实现,例如电商网站,一个系统后面往往有N多个子系统,当用户操作时,验证一个系统后如果还需要去验证其他字系统,那将会很麻烦,所以对此,就要使用到单点登录来产生和存储一个信任来使用户不需要频繁认证,还有一个问题就是其他子系统如何去验证信任。

  这就是单点登录的目的,所以我们需要做的主要有两方面

~产生存储信任

~验证信任

 

主要有两种实现方式

一:Redis+Jackson+Cookie+Filter原生实现单点登录

在cookie中写入信息,写入信任。

https://blog.csdn.net/sinat_25295611/article/details/80406172

https://blog.csdn.net/qq_35704236/article/details/80427480

1:构建Redis连接池来提供Redis实例

2:封装Redis API以支持对Redis的操作

3:因为Redis中存储的是json字符串格式,所以需要编写一个json格式转换工具

4:Cookie读写的封装,登录成功时将token写入cookie和Redis,再次登录时检测Cookie中的token是否还存在。

5:退出时删除cookie。

6:配置session重新登录时的有效时间。

这种实现方式对代码的侵入性较高,在多处需要改动。

 

二:Spring Session+Redis实现SSO

https://blog.csdn.net/sinat_25295611/article/details/80446506

它的原理和原生代码实现类似,通过对HttpServletRequest和HttpServletResponse的包装来实现cookie的读写,序列化采用JDK原生的方式。

1:在用户登录登出等controller方法里面使用原生的session进行存储或者删除用户的登录信息。

2:在web.xml中配置filter,此处使用官方的org.springframework.web.filter.DelegatingFilterProx这个filter来重置session的有效时间。

3:配置springsession.xml,以xml方式配置RedisheCookie。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值