单点登录(二)使用Cookie+File实现单点登录登出(附源码)
2015-07-16 13:23
447 查看
上一篇文章《单点登录(一)使用Cookie+File实现单点登录》中,我们实现了单点登录的功能。
本文作为上一篇文章的扩展部分,添加“单点登出”功能。
源码下载:链接: http://pan.baidu.com/s/1bn57xCF 密码: 5apa
单击“安全退出”,则清空Cookie,同时清空3个网址的session。此时,若仍想登录网站,必须重新输入用户名和密码。
若要实现不同域名之间的单点登录【如:main.com news.com bbs.com】,请参加下一篇文章..........
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中的默认端口:由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.输入用户名:it_main(以it开头即可)和密码pwd_main(以pwd开头即可),勾选“一周内自动登录”。点击“登录”按钮。
7.访问关联的网站,点击news.tgb.com/bbs.tgb.com,则无需输入:用户名和密码。
8.查看浏览器中Cookie和Session中的值
9.点击“安全退出”按钮,则3个网站同时退出。
本文作为上一篇文章的扩展部分,添加“单点登出”功能。
源码下载:链接: http://pan.baidu.com/s/1bn57xCF 密码: 5apa
本例实现效果
浏览器中输入网址:main.tgb.com,后输入用户名:it_main(以it开头即可)和密码pwd_main(以pwd开头即可),勾选“一周内自动登录”。点击“登录”按钮。即可实现单点登录功能。访问关联的网站,点击news.tgb.com/bbs.tgb.com,则无需输入:用户名和密码。点击“安全退出”按钮,则3个网站同时退出。实现原理
首次登录main网址,需要输入用户名和密码。验证通过后,将在Cookie中保存一份用户名和密码(3网址公用的),同时保存有一份Session(只针对于main的session)。当访问关联网站(如:news)时,首先从关联网站中查询各自的session(如news的session)中是否包含用户名和密码,若session为空,则查询cookie中的值,并赋值给关联网站的news的session,此时访问news网址时,无需登录。单击“安全退出”,则清空Cookie,同时清空3个网址的session。此时,若仍想登录网站,必须重新输入用户名和密码。
点评
利用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中的默认端口:由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.输入用户名:it_main(以it开头即可)和密码pwd_main(以pwd开头即可),勾选“一周内自动登录”。点击“登录”按钮。
7.访问关联的网站,点击news.tgb.com/bbs.tgb.com,则无需输入:用户名和密码。
8.查看浏览器中Cookie和Session中的值
9.点击“安全退出”按钮,则3个网站同时退出。
相关文章推荐
- C++获取一个目录下的所有文件
- hdoj 1269 迷宫城堡 【有向图SCC 入门题目】
- cocos2d-x游戏实例(6)-A星算法(2)
- cocos2d-x游戏实例(5)-A星算法(1)
- 【英语】20150716 生词
- jQuery-鼠标经过显示大图并跟随鼠标效果插件
- DT大数据梦工厂 第54讲
- leetcode-237-Delete Node in a Linked List
- DP 水的问题
- Spark编程指南V1.4.0(翻译)
- SVN新增本地目录共享
- cocos2d中文显示问题的解决方法
- Android最佳性能实践(
- 关于尾递归
- Flex与servlet数据交互3(xml解析)
- Java中native关键字
- 数据挖掘分类算法--KNN
- 归并排序 MergeSort
- LeetCode "Product of Array Except Self"
- 发票丢失如何处理