没有什么条理,就当做个笔记,怕以后忘记了。
最近在学习SSO的理论知识以及架构设计,没有进行实战,不过看网上有很多开源的框架,应该集成起来比较方便吧。
这里主要想记录的是关于用户数据散落在多个数据库或表时的解决方案,其实这种情况很多,因为很多时候是项目发展到一定程度,可能才引入的单点登录解决方案,所以,原来都是由多个系统自己维护自己的用户数据。
针对用户信息数据散落在不同的表或库的时候,如果是自己搭建的SSO认证服务器,那么可以使用责任链模式设计一个处理用户登录认证的处理流程:
有多个processor,每个processor处理原来一个系统的用户数据,一一对应。
当第一个processor接受到数据,处理后返回null或false,那么交给下一个processor,依次往下,直到验证完成(找不到信息或登录成功)。