解决单点登录的一个方法!
来源:互联网 发布:用java判断质数 编辑:程序博客网 时间:2024/05/22 06:33
这个只需要session和application就好了,
用户登录时,这样写:
User user = dao.login(userName, password);// 数据库中判断用户名和密码
if (null != user) {// 表示用户存在
session.setAttribute("user", user);// 把用户放进session中
application.setAttribute(userName, session.getId());/* 把用户所在的sessionId放进application中,首先要明白一点,一个session对应一个浏览器,其次要注意一点,userName必须是唯一的*/
}
当用户访问到其他url的时候,可以在过滤器或你的拦截器中这样写:
User user = (User) session.getAttribute("user");// 从session中取出用户
if (null == user) {// 未登录或者登录已经过期
response.sendRedirect(request.getContextPath());// 跳转到首页或登录页面
}
String sessionId = (String) application.getAttribute(user.getUserName());
if (null == sessionId || !sessionId.equals(session.getId())) {/*这说明用户已经在其他电脑或其它浏览器登录了,那么之前登录的session就无效了,自动被后面的登录给踢掉*/
response.sendRedirect(request.getContextPath());// 跳转到首页或登录页面
}
chain.doFilter(request, response);// 通过验证,放行用户进入目标url
这种方式是我的一个前辈想到的,我们公司的所有项目都采纳了这种方式,
确保一个账号只能在一个浏览器中使用
用户登录时,这样写:
User user = dao.login(userName, password);// 数据库中判断用户名和密码
if (null != user) {// 表示用户存在
session.setAttribute("user", user);// 把用户放进session中
application.setAttribute(userName, session.getId());/* 把用户所在的sessionId放进application中,首先要明白一点,一个session对应一个浏览器,其次要注意一点,userName必须是唯一的*/
}
当用户访问到其他url的时候,可以在过滤器或你的拦截器中这样写:
User user = (User) session.getAttribute("user");// 从session中取出用户
if (null == user) {// 未登录或者登录已经过期
response.sendRedirect(request.getContextPath());// 跳转到首页或登录页面
}
String sessionId = (String) application.getAttribute(user.getUserName());
if (null == sessionId || !sessionId.equals(session.getId())) {/*这说明用户已经在其他电脑或其它浏览器登录了,那么之前登录的session就无效了,自动被后面的登录给踢掉*/
response.sendRedirect(request.getContextPath());// 跳转到首页或登录页面
}
chain.doFilter(request, response);// 通过验证,放行用户进入目标url
这种方式是我的一个前辈想到的,我们公司的所有项目都采纳了这种方式,
确保一个账号只能在一个浏览器中使用
- 解决单点登录的一个方法!
- 什么方法可以解决单点登录的问题呢?
- 分享一个单点登录验证方法
- SSO单点登录需要解决的问题
- webseal 单点登录的一个问题
- 一个简单的单点登录构思
- 单点登录的简单实现方法
- php的sso单点登录实现方法
- php的sso单点登录实现方法
- 单点登录实现方法
- CAS解决单点登录SSO
- CAS解决单点登录SSO
- CAS如何解决单点登录后跨域安全的问题
- 对jira和wiki的单点登录解决
- 一个yale-cas实现单点登录的简单例子实现
- C#一个存储用户信息的类,支持单点登录
- 一个简单的asp.net 单点登录实现
- 单点登录的解决方案
- 笔试题一
- FlashBuilder精选插件
- 常见的中间件技术有哪些呢?
- 《类的连续派生——C#第四周》
- 对于一个入栈序列输出所有的出栈序列
- 解决单点登录的一个方法!
- 字符串压缩——C语言
- JavaScript学习笔记(九) 函数的基本知识和专业术语
- 通过移位把十进制转换成二进制和十六进制
- 李开复给中国大学生的第一封信
- Eclipse 9.x & 10.0 之破解详细步骤
- 编程之美----寻找发帖水王
- 新网锐捷的C++笔试题
- HDU 1073 Online Judge