快捷搜索:  创意文化园  as  test  生活家装饰  ?????  25742  2674  2808

青岛新闻网_单点登录原理与简单实现

原文出处: 凌承一

一、单系统登录机制 1、http无状态协议

web应用采纳browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次哀求,供职器会独立从事惩罚,不与之前或之后的哀求发生关联,这个过程用下图阐明,三次哀求/响应对之间没有任何联系

3c91a3bf-25d8-4b1f-8e4a-68535c51aaa8

但这也同时意味着,任何用户都能通过浏览器造访供职器资源,如果想珍惜供职器的某些资源,必须限制浏览器哀求;要限制浏览器哀求,必须鉴识浏览器哀求,响应合法哀求,忽略造孽哀求;要鉴识浏览器哀求,必须清楚浏览器哀求状态。既然http协议无状态,那就让供职器和浏览器共同掩护一个状态吧!这便是会话机制

2、会话机制

浏览器第一次哀求供职器,供职器创建一个会话,并将会话的id作为响应的一部门发送给浏览器,浏览器存储会话id,并在后续第二次和第三次哀求中带上会话id,供职器取得哀求中的会话id就知道是不是同一个用户了,这个过程用下图阐明,后续哀求与第一次哀求发生了关联

8a9fb230-d506-4b19-b821-4001c68c4588

供职器在内存中保管会话对象,浏览器怎么保管会话id呢?你也许会想到两种方式

哀求参数

cookie

将会话id作为每一个哀求的参数,供职器接收哀求自然能解析参数获得会话id,并借此判断是否来自同一会话,很明显,这种方式不靠谱。那就浏览器本人来掩护这个会话id吧,每次发送http哀求时浏览器自动发送会话id,cookie机制正好用来做这件事。cookie是浏览器用来存储多量数据的一种机制,数据以”key/value“形式存储,浏览器发送http哀求时自动附带cookie信息

tomcat会话机制当然也实现了cookie,造访tomcat供职器时,浏览器中可以看到一个名为“JSESSIONID”的cookie,这便是tomcat会话机制掩护的会话id,使用了cookie的哀求响应过程如下图

518293d9-64b2-459c-9d45-9f353c757d1f

3、登录状态

有了会话机制,登录状态就好大白了,我们假设浏览器第一次哀求供职器须要输入用户名与暗码验证身份,供职器拿到用户名暗码去数据库比对,正确的话阐明当前持有这个会话的用户是合法用户,应该将这个会话标识表记标帜为“已授权”可能“已登录”等等之类的状态,

Sunbet

申博Sunbet官网(www.sunbet.us)以领先同行的技术力量、服务品质,将在未来一年里,为每位申博Sunbet会员带来更好的服务。

,既然是会话的状态,自然要保管在会话对象中,tomcat在会话对象中设置登录状态如下

HttpSession session = request.getSession(); session.setAttribute("isLogin", true);

用户再次造访时,tomcat在会话对象中检查登录状态

HttpSession session = request.getSession(); session.getAttribute("isLogin");

实现了登录状态的浏览器哀求供职器模型如下图描述

70e396fa-1bf2-42f8-a504-ce20306e31fa

每次哀求受珍惜资源时乡村搜查会话对象中的登录状态,只有 isLogin=true 的会话能力造访,登录机制因此而实现。

二、多系统的复杂性

web系统早已从长远的单系统生长成为如今由多系统组成的应用群,面对如此众多的系统,用户难道要一个一个登录、然后一个一个注销吗?就像下图描述的这样

6dfbb0b1-46c0-4945-a3bf-5f060fa80710

web系统由单系统生长成多系统组成的应用群,复杂性应该由系统内部承担,而不是用户。无论web系统内部多么复杂,对用户而言,都是一个统一的整体,也便是说,用户造访web系统的整个应用群与造访单个系统一样,登录/注销只要一次就够了

9fe14ab3-4254-447b-b850-0436e628c254

虽然单系统的登录打点方案很完美,但对于多系统应用群已经不再适用了,为什么呢?

单系统登录打点方案的核心是cookie,cookie携带会话id在浏览器与供职器之间掩护会话状态。但cookie是有限制的,这个限制便是cookie的域(通常对应网站的域名),浏览器发送http哀求时会自动携带与该域匹配的cookie,而不是所有cookie

发表评论
sunbet声明:该文看法仅代表作者自己,与本平台无关。请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

您可能还会对下面的文章感兴趣: