上一篇文章《单点登录(一)使用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. 【codeforces 508E】Artur and Brackets

    [题目链接]:http://codeforces.com/problemset/problem/508/E [题意] 让你构造一个括号字符串; 使得每个从左往右数第i个左括号在这个括号序列中与之匹配的 ...

  2. Mysql学习总结(30)——MySQL 索引详解大全

    什么是索引? 1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类 ...

  3. jvm 虚拟机参数_堆内存分配

    1.参数 -XX:+PrintGC 只要遇到 GC 就会打印日志 -XX:+UseSerialGC 配置串行回收器 -XX:+PrintGCDetails 查看详细信息,包括各个区的情况 -XX:+P ...

  4. POJ 2084

    第一题组合数学题.可以使用递推,设1与其他各数分别连边,假设N=3;若1-4,则圆分成两部分计数,此时可以利用乘法原理.(高精度) #include <cstdio> #include & ...

  5. redis五种数据结构的指令

    一.基本常用命令 select 选择数据库  0-15共16个库 keys   返回所有的键   keys mylist*代表取出所有mylist开头的键 exists 确认一个键存在不 del 删除 ...

  6. Java虚拟机的类载入机制

    Java虚拟机类载入过程是把Class类文件载入到内存.并对Class文件里的数据进行校验.转换解析和初始化,终于形成能够被虚拟机直接使用的java类型的过程. 在载入阶段,java虚拟机须要完毕下面 ...

  7. 虚拟化技术对照:Xen vs KVM

    恒天云:http://www.hengtianyun.com/download-show-id-68.html 一.说明 本文主要从功能方面和性能方面对Xen和KVM对照分析,分析出其优缺点指导我们恒 ...

  8. JavaScript常用的api

    打印日志 console.log 类型判断 第一种方式var type = Object.prototype.toString.call(list);console.log(type);第二种方式ty ...

  9. sql/plus无法显示数据库问题

    登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files ( ...

  10. SpringBoot(一) 基础入门

    SpringBoot简要 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 自动配置:针对很多Spring应用程序常见的应用功能,Spring ...