Web项目记录session实现单点登录

一哥们叫我写篇单点登录。我就记录一下我们项目中的单点登录实现吧,其实超级简单。

项目中通常都用的记录session来控制单点登录的。直接上代码吧

/**
	 * sesssion列表
	 */
	private static Map<String, HttpSession> sessionMap = new HashMap<String, HttpSession>();

    /**
     *
     *方法描述:单点登录
     * @param session
     * @param userName
     */
 	public synchronized static void singleLogin(HttpSession session, String userName) {
 		if (sessionMap.containsKey(userName)) {
 			HttpSession ses = (HttpSession) sessionMap.get(userName);
 			try {
 				// session的id值不相同才将原session作废
 				if (!(session.getId()).equals(ses.getId())) {
 					ses.invalidate();
 				}
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
 		}
 		sessionMap.remove(userName);
 		sessionMap.put(userName, session);
 	}

 	/**
 	 *
 	 *方法描述:退出
 	 * @param session
 	 * @param userName
 	 */
 	public synchronized static void logout(HttpSession session, String userName) {
 		if (userName!=null) {
 			if (sessionMap.containsKey(userName)) {
 				try {
 					session.invalidate();
 					sessionMap.remove(userName);
 				} catch (Exception e) {
 					e.printStackTrace();
 				}
 			}
		}
 	}

OK了。实现单点登录的方法还是挺多的。条条大路通罗马,不吝赐教

时间: 2024-08-11 15:08:55

Web项目记录session实现单点登录的相关文章

TP、PHP同域不同子级域名共享Session、单点登录

TP.PHP同域不同子级域名共享Session.单点登录 目的: 为了部署同个域名下不同子级域名共享会话,从而实现单点登录的问题,一处登录,同域处处子系统即可以实现自动登录. PHP支持通过设置cookie使得同域不同子域共享SESSION 1. 通过在执行PHP的入口文件中设置如下代码: ini_set('session.cookie_path', '/'); ini_set('session.cookie_domain', '.mydomain.com'); ini_set('session

SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录

作者:Sans_ juejin.im/post/5d087d605188256de9779e64 一.说明 Shiro是一个安全框架,项目中主要用它做认证,授权,加密,以及用户的会话管理,虽然Shiro没有SpringSecurity功能更丰富,但是它轻量,简单,在项目中通常业务需求Shiro也都能胜任. 二.项目环境 MyBatis-Plus版本: 3.1.0 SpringBoot版本:2.1.5 JDK版本:1.8 Shiro版本:1.4 Shiro-redis插件版本:3.1.0 数据表(

使用Eclipse开发Web项目(JSP)——简单登录、无sql

1.使用Eclipse开发Web项目(JSP) tomcat 2.在Eclipse中创建的Web项目: 浏览器可以直接访问webContent中的文件 例如http://localhost:8080/MyJspProject/index1.jsp 其中的index1.jsp就在WebContent目录中: 但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问 注意:并不是任何的内部跳转都能访问WEB-INF:原因是跳转有两种方式:请求转发.重定向 3.配置tomc

redis缓存+session 实现单点登录

一.单点登录介绍 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 同域下:单点登录是巧用了Cookie顶域的特性. 不同域下:如果是不同域呢?不同域之间Cookie是不共享的,怎么办? 这个是使用CAS流程,单点登录的标准流程. 相关详情:https://yq.aliyun.com/articles/636281    https://blog.csdn.n

Cas v4.2.5 发布,Web 单点登录系统

Cas v4.2.5 发布了,CAS(Central Authentication Service)为Web应用系统提供了单点登录服务(手机app开发).它的特性包括:一个开放和具有很好文档支持的协议:一个Java开源服务器组件:提供多种类型的客 户端包括Java..Net.PHP.Perl.Apache.uPortal等:能够与uPortal.BlueSocket.TikiWiki. Mule. Liferay.Moodle集成使用(入门教程qkxue.net). 问题处理: https://

搭建CAS单点登录服务器

最近公司的一个项目需要用到单点登录的功能,之前对单点登录了解得不多.于是网上找了下单点登录的解决方案,发现CAS是个不错的解决方案.于是搭个环境测试了一下.这里记录下测试的详细步骤. 官网:http://jasig.github.io/cas/ Cas Server下载:http://developer.jasig.org/cas/ Cas Client下载:http://developer.jasig.org/cas-clients/ 测试环境: jdk:java version "1.8.0

单点登录系统---SSO

1.------------------SSO介绍--------------------------------- 有什么卵用?搞什么飞机的? 大家看看这个图,一个系统是没有问题.如果是分布式的系统,session放到哪里,放到一个web工程中,那么其他的工程咋取值嘞! 1.有的人想到session复制,的确可行,但是如果web项目很多,它的效率非常低 2.可以使用Session服务器,保存Session信息,使每个节点是无状态.需要模拟Session. 单点登录系统是使用redis模拟Ses

浅谈架构之路:单点登录 SSO

前言:SSO 单点登录 "半吊子"的全栈工程师又来了,技术类的文章才发表了两篇,本来想先将主攻的几个系列都开个头(Nodejs.Java.前端.架构.全栈等等),无奈博客起步太晚,写博文的时间又没有很多,只好不按顺序乱发一通,请大家见谅. 本篇文章介绍一下单点登录,不像上一篇博文介绍的前后端分离,SSO 并不能算是一种架构吧,只能说是一个解决方案.由于笔者参与过医院集成平台项目,负责其中单点登录的设计研发工作,将经验总结分享一下,也不一定是最优方案,正确与否那就"仁者见仁智者

单点登录CAS使用记(一):前期准备以及为CAS-Server配置SSL协议

知识点: SSO:单点登录(Single Sign On),是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS:耶鲁大学开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Server),他是一个开源的.相对比较简单易用的SSO解决方案. SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer