上一篇文章《单点登录(一)使用Cookie+File实现单点登录》中,我们实现了单点登录的功能。

本文作为上一篇文章的扩展部分,加入“单点登出”功能。

源代码下载:链接: http://pan.baidu.com/s/1bn57xCF password: 5apa

本例实现效果

浏览器中输入网址:main.tgb.com,后输入username:it_main(以it开头就可以)和passwordpwd_main(以pwd开头就可以),勾选“一周内自己主动登录”。点击“登录”button。就可以实现单点登录功能。訪问关联的站点,点击news.tgb.com/bbs.tgb.com。则无需输入:username和password。点击“安全退出”button,则3个站点同一时候退出。

实现原理

首次登录main网址,须要输入username和password。验证通过后,将在Cookie中保存一份username和password(3网址公用的),同一时候保存有一份Session(仅仅针对于main的session)。当訪问关联站点(如:news)时。首先从关联站点中查询各自的session(如news的session)中是否包括username和password,若session为空,则查询cookie中的值,并赋值给关联站点的news的session,此时訪问news网址时。无需登录。

单击“安全退出”。则清空Cookie,同一时候清空3个网址的session。此时,若仍想登录站点,必须又一次输入username和password。

点评

利用Cookie和Filter实现的单点登录。有其局限性【main.tgb.com   news.tgb.com   bbs.tgb.com 】,仅仅能针对于域名为“.tgb.com”的网址进行共享。

若要实现不同域名之间的单点登录【如:main.com   news.com   bbs.com】,请參加下一篇文章..........

操作步骤

1.在C:\Windows\System32\drivers\etc中的hosts文件里,加入例如以下节点(直接加入在文件最后就可以):

127.0.0.1  bbs.tgb.com

127.0.0.1  news.tgb.com

127.0.0.1  main.tgb.com

2.在C:\tomcat\apache-tomcat-6.0.35\conf\server.xml中改动HTTP/1.1中的默认port:由8080改为80,例如以下所看到的:

<Connector connectionTimeout="20000"
port="80" protocol="HTTP/1.1" redirectPort="8443"/>

3.将main.zip,news.zip,bbs.zip解压后。直接复制到apache-tomcat-6.0.35中。

4.启动tomcat,如: C:\tomcat\apache-tomcat-6.0.35\bin中双击startup.bat命令

5.浏览器中输入:main.tgb.com

6.输入username:it_main(以it开头就可以)和passwordpwd_main(以pwd开头就可以),勾选“一周内自己主动登录”。

点击“登录”button。

7.訪问关联的站点,点击news.tgb.com/bbs.tgb.com。则无需输入:username和password。

8.查看浏览器中Cookie和Session中的值

9.点击“安全退出”button。则3个站点同一时候退出。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

单点登录(二)使用Cookie+File实现单点登录登出(附源代码)的更多相关文章

  1. 单点登录(一)使用Cookie+File实现单点登录

    本文使用Cookies+Filter实现www.taobao.tgb.com 和 www.tianmao.tgb.com的单点登录. 源代码分享:链接: http://pan.baidu.com/s/ ...

  2. 将wxpy的登录二维码放到网页上登录

    from flask import Flask, Response from flask.views import MethodView from threading import Thread fr ...

  3. CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...

  4. requests库使用:通过cookie跳过验证码登录,并用Session跨请求保持cookie

    拿我平时测试的一个系统为例,从UI层面来说必须先登录才可以进行后续操作,但是我在测试接口文档提供的接口时,发现并不需要登录,每个接口只要传参就可以正常返回.原因是我们这边专门弄了一个接口包来统一管理常 ...

  5. PHP不同域名cookie共享(单点登录实现原理)

    PHP使用P3P完成COOKIE跨域操作实际实用中,类似的需求有,比如说我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是单点登录(SSO)功能.为了测试的方便,先编辑ho ...

  6. SSO 基于Cookie+fliter实现单点登录 实例解析(一)

    接上文,SSO的理论讲解,接下来实践实践! 1.使用Cookie解决单点登录 技术点: 1.设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2.设置 ...

  7. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...

  8. 单点登录(二)----实战------简单搭建CAS---测试认证方式搭建CAS

    我们在上一篇文章中已经介绍了cas以及它的工作流程. 单点登录(一)-----理论-----单点登录SSO的介绍和CAS+选型 本章我们开始动手搭建一个完整的cas服务实现2个web之间的单点登录. ...

  9. CAS5.3 单点登录/登出/springboot/springmvc

    环境: jdk:1.8 cas server:5.3.14 + tomcat 8.5 cas client:3.5.1 客户端1:springmvc 传统web项目(使用web.xml) 客户端2:s ...

随机推荐

  1. MyBatis学习总结(7)——Mybatis缓存

    一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...

  2. ASP.NET-ActionResutlt

    @RenderPage("Page_part1"); 上面的这种写法是错误的应该是 @RenderPage("Page_part1.cshtml"); // 要 ...

  3. HDU 4089

    很容易列出方程 设dp[i][j]为排在第i位置,总共有j个人排队到达目标状态的概率 i=1 dp[i][j]=p4+p1*dp[i][j]+p2*dp[j][j] 2<=i<=k dp[ ...

  4. ZOJ 3556

    终于做出来了,激动.... 这道题隐藏得深啊,但若推导下来,就变简单了. 首先,一个集合的子集的个数为2^n=s.注意了,题目求的是有序集合组,并且每个集合是可以重复使用的,怎么办呢?这就要想到多重集 ...

  5. 安卓版微信自带浏览器和IE6浏览器ajax请求abort错误处理

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46419567 给页面元素绑定了一个click事件用来触发ajax请求.在安卓微信自 ...

  6. glove入门实战

    前两天怒刷微博,突然发现了刘知远老师分享的微博,顿时眼前一惊.原Po例如以下: http://weibo.com/1464484735/BhbLD70wa 因为我眼下的研究方向是word2vec.暗自 ...

  7. 公司--下载svg图片

    加载本地svg图片: SVGParserRenderer norDrawable = OtherPageConfigsManager.getInstance().getSVGParserRendere ...

  8. xBIM 实战04 在WinForm窗体中实现IFC模型的加载与浏览

    系列目录    [已更新最新开发文章,点击查看详细]  WPF底层使用 DirectX 进行图形渲染.DirectX  能理解可由显卡直接渲染的高层元素,如纹理和渐变,所以 DirectX 效率更高. ...

  9. sql server 查询某数据库中包含某字段的所有表格

    场景:查询DNMes数据库中所有包含RFID字段的表名 sql语句: select object_name(id) objName,Name as colName from syscolumns wh ...

  10. 新疆大学OJ(ACM) 1099: 数列有序!

    1099: 数列有序! 时间限制: 1 Sec  内存限制: 128 MB 题目描述 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的 ...