java web 笔记(二):登录认证系统

来源:互联网 发布:2016淘宝刷不了单 编辑:程序博客网 时间:2024/06/05 17:58

讲完cookie和session(没看过前一篇博客的建议先看前一篇),现在简单讨论下登录系统。
简单的单独项目登录系统可以做的很简单,只是用cookie和session就能实现;复杂的登录系统如SSO等可以做的很复杂,需要考虑使用各种认证防数据捕获等情况。

这里简单介绍下多系统非SSO登录认证系统。

在公司内部有这样的需求:公司内部有许多平台(可以理解为项目),但这些平台没有实现登录的功能,现在需要提供一个统一的登录系统共这些平台接入,并登录。
统一的登录认证系统

和传统的单系统不同,该登录认证系统是单独的一套系统,即登录系统独立于项目。

从大体上来说,这样的登录认证系统需要提供以下三个最基本的功能:

  • 登录
  • 认证
  • 登出

我们把单独的登录认证系统就称为登录系统,接入的项目称为平台
具体流程如下:

  1. 浏览器输入平台的主页面,由于平台未发现记录用户的信息,因此携带该平台的url导向到登录系统登录页面
  2. 用户登录,登录成功,登录系统根据第一步传来的url再导回到平台主页
  3. 平台检测到了携带用户的信息,但不确定该信息是否正确,因此调用登录系统认证功能,核实该信息
  4. 核实通过,登录系统返回结果给平台平台保存该信息,下一次再访问该平台时,由于平台已经保存了用户信息,因此不用调用登录系统认证功能,直接在其内部比对
  5. 登出时,调用登录系统的登出功能,成功后清除平台保存的用户信息。

在只是用cookie和session的基础上,设计的具体序列图如下:
这里写图片描述

笔者有一份简单的代码,但写的很烂,就不贴出来了。。。