java web 单点登录
来源:互联网 发布:姚明个人数据统计 编辑:程序博客网 时间:2024/04/28 11:15
本文主要介绍的是如何简单地实现 web版的单点登录,
主要是实现,用户把自己之前登录的账号挤下去
不说废话 直接上代码
1,建立一个应用对象
在登录的action中
//创建application对象把所有登录的用户session存在里面
ServletContext application = request.getSession().getServletContext();
Collection<HttpSession> sessions = null;
if (application.getAttribute("usercount") == null) {
sessions = new ArrayList<HttpSession>();
application.setAttribute("usercount", sessions);
} else {
sessions = (Collection<HttpSession>) application
.getAttribute("usercount");
}
//已登录处理登录的用户
new LoginManager().login(sessions, session);
//括号里面是LoginManager类 用来清除 同意用户之前的session
此类里面已经处理了 session过期 的问题
(package com.tenchong.util;
import java.util.ArrayList;
import java.util.Collection;
import javax.servlet.http.HttpSession;
import com.tenchong.entity.TuserEntity;
public class LoginManager {
public HttpSession login(Collection<HttpSession> sessions,HttpSession session) {
ArrayList<HttpSession> sessionde=new ArrayList<HttpSession>();
for (HttpSession s : sessions) {
try {
if (((TuserEntity) s.getAttribute("user_session")).getId() == ((TuserEntity) session
.getAttribute("user_session")).getId()) {
sessions.remove(s); // 移除集合中的重复session元素
s.invalidate();// 废弃之前登陆的session
break;
}
} catch (Exception e) {
sessionde.add(s);
} finally {
}
}
for(int i=0;i<sessionde.size();i++){
sessions.remove((HttpSession)sessionde.get(i));
}
sessions.add(session);
return null;
}
} )
2.处理这些之后 手动退出的时候 要清除 application中的对应session
在loginout的 action中
Collection<HttpSession> sessions = (Collection<HttpSession>) application
.getAttribute("usercount");
sessions.remove(session);//session 是 request,getsession();
- java web 单点登录
- Java Web 单点登录
- Java Web 系统单点登录的实现
- Java Web 系统单点登录的实现
- Java Web网站应用中的单点登录
- java web单点登录异常情况处理
- java cas 单点登录web.xml配置
- Java Web网站应用中的单点登录
- java cas 单点登录web.xml配置
- Web 单点登录系统
- Web 单点登录系统
- Web 单点登录SSO
- 单点登录:java web 与 dyjango的整合
- java web 用户单点登录的方案的基本实现
- java Web单点登录(SSO)原理及简单实现
- java web 用户单点登录的方案的基本实现
- java实现单点登录
- Java单点登录
- 学习Android笔记-20140312
- 多线程——生产者消费者
- SSH2中memcached作为hibernate二级缓存
- 马航飞机不可能是导弹击落,救援行动名不符实
- Linux下做NAT内网报文泄露问题
- java web 单点登录
- Gabor滤波器学习
- 如何让自己有一个成功的面试
- Solr学习之—:solr facet
- 利用mtd工具实现嵌入式设备在线升级
- 基本语言细节--C语言标准库函数strcpy
- 【LeetCode】Same Tree
- 使用Spring中Src下 -context.xml : 用资源文件夹保存数据库的链接信息 并在配置文件里读取
- Yii框架学习第二天-执行流程