• 单点登录


    什么是单点登录系统 (Single Sign On)? 

    在多个系统中,用户只要登录一次就可以访问所有的子系统。

    1. 单点登录系统(SSO): 

    创建单点登录系统,独立的工程。

    发布登录和注册的接口。

    公司中的一个系统中,只需要调用一个登录页面就可以实现登录和注册的功能。

    传统的登录流程:

    在传统的登录中出现的问题。在集群中,需要把同一套代码部署到多个服务器中。每个工程都有独立的session.

    如果把用户信息写入到session中不共享的话,就会出现用户反复登录的情况。

    解决方案:第一种方案可以配置tomcat的session共享,配置tomcat集群。集群配置好了。会不停的向其他的tomcat广播自己的session信息,其他的tomcat做session同步。可以保证所有的session中的内容一致。

    缺点:<a>tomcat是全局的session复制。集群内每个tomcat的session完全同步。在大规模应用的时候,用户过多。集群中tomcat数量过多。session的全局复制会导致集群的性能下降,因此tomcat数量不能多。5个以下为好。 不能解决session共享的问题。列如支付宝和淘宝单点登录的问题。

    第二种方案:实现单点登录,提供服务接口。把session放入到redis中。redis可以设置key的生存时间。访问效率高。单点登录由一套单点页面维护。

    用户请求登录页面,SSO系统接收用户信息。从数据库中获取信息,判断是否正确,用户认证,生成token,将信息保存到Redis中设置有效期,返回登录成功,把token写入到cookie中,如果有回调url,跳转到回调的url中。

    接收cookie中的token,并根据token查redis.如果token存在,可以顺便调整生存时间。显示请求页面。否则返回登录页面。

    创建单点登录系统(独立的工程,需要操作Redis,连接数据库)

    系统架构:

    需要使用的技术:1)Mybatis; 2)Spring ; 3)Springmvc; 4)Redis;

  • 相关阅读:
    idea报“Usage of API documented as @since 1.7”这一问题的解决方法
    分页的总页数算法
    Error evaluating expression 'category.id != null and category.id != '''. Cause: org.apache.ibatis.og
    json日期处理类
    解决maven过滤必需配置文件的方法
    数据库配置文件
    springmvc 提供的统一解决json中文乱码配置
    EXPLAIN 命令详解
    MySQL索引与Index Condition Pushdown(二)
    【MySQL】性能优化之 Index Condition Pushdown
  • 原文地址:https://www.cnblogs.com/jacksonxiao/p/8168685.html
Copyright © 2020-2023  润新知