单点登录(二)使用Cookie+File实现单点登录登出(附源代码)
上一篇文章《单点登录(一)使用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实现单点登录登出(附源代码)的更多相关文章
- 单点登录(一)使用Cookie+File实现单点登录
本文使用Cookies+Filter实现www.taobao.tgb.com 和 www.tianmao.tgb.com的单点登录. 源代码分享:链接: http://pan.baidu.com/s/ ...
- 将wxpy的登录二维码放到网页上登录
from flask import Flask, Response from flask.views import MethodView from threading import Thread fr ...
- CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...
- requests库使用:通过cookie跳过验证码登录,并用Session跨请求保持cookie
拿我平时测试的一个系统为例,从UI层面来说必须先登录才可以进行后续操作,但是我在测试接口文档提供的接口时,发现并不需要登录,每个接口只要传参就可以正常返回.原因是我们这边专门弄了一个接口包来统一管理常 ...
- PHP不同域名cookie共享(单点登录实现原理)
PHP使用P3P完成COOKIE跨域操作实际实用中,类似的需求有,比如说我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是单点登录(SSO)功能.为了测试的方便,先编辑ho ...
- SSO 基于Cookie+fliter实现单点登录 实例解析(一)
接上文,SSO的理论讲解,接下来实践实践! 1.使用Cookie解决单点登录 技术点: 1.设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2.设置 ...
- SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...
- 单点登录(二)----实战------简单搭建CAS---测试认证方式搭建CAS
我们在上一篇文章中已经介绍了cas以及它的工作流程. 单点登录(一)-----理论-----单点登录SSO的介绍和CAS+选型 本章我们开始动手搭建一个完整的cas服务实现2个web之间的单点登录. ...
- 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 ...
随机推荐
- synchronized的实现原理及锁优化
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized.对于当时的我们来说,synchronized是如此的神奇且强大.我们赋予它一个名字“同步”,也成为我们解决多线程情况的良药 ...
- 2015 Multi-University Training Contest 6 hdu 5361 In Touch
In Touch Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- C#-常用对象-思维导图
C#-常用对象-思维导图 链接:http://pan.baidu.com/s/1jHNgS78 密码:3i74 如有错误,请告知我!
- WinServer-IIS-svg/woff/woff2字体 404错误
问题:最近在IIS上部署web项目的时候,发现浏览器总是报找不到woff.woff2字体的错误.导致浏览器加载字体报404错误,白白消耗了100-200毫秒的加载时间. 原因:因为服务器IIS不认SV ...
- 洛谷 P2507 [SCOI2008]配对
P2507 [SCOI2008]配对 题目背景 四川NOI2008省选 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值 ...
- Unity3D——加入剑痕效果(PocketRPG Trail插件)
首先非常感谢大家的支持,因为近期项目吃紧,所以更新的速度可能会有点慢!希望大家谅解,当然大家的支持是我最大的动力.我也会尽我所能写出更好的文章,当然因为本人是个新手并且工作的内容也不是unity3D. ...
- MAVEN创建并打包web项目
maven项目是由一个maven project和多个maven module组成的,以下简介一下maven webapp的创建和打包,前提是你已经安装配置好maven了. 打开eclipse.依照例 ...
- 5.Git使用详细教程
转自:https://www.cnblogs.com/seven-ahz/p/7712125.html 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的 ...
- ServiceStack.Redis之IRedisClient<第三篇>【转】
事实上,IRedisClient里面的很多方法,其实就是Redis的命令名.只要对Redis的命令熟悉一点就能够非常快速地理解和掌握这些方法,趁着现在对Redis不是特别了解,我也对着命令来了解一下这 ...
- 为什么maven 创建web工程不自动生成Deployment Descriptor:工程名
上面图切换成下面图: 点击eclipse右上角,如下图红圈,然后在选择javaEE这样就切换成javaEE视图了 如果还是不能解决,相信这个链接对你有所帮助:https://www.cnblogs.c ...