java 实现 一个账号只能在一个地方登陆,其他地方被下线
2014-12-03 11:55
465 查看
其实方法有很多的,我这献丑了。
使用理解java 四大作用域。
思路:理解java 四大作用域的关键。
第一个地方登陆:
1.得到请求的SessionId 和 登陆的 用户名
2.把SessionId 存到application里,用户名存到当前session里
第二个地方登陆:
1.获取浏览器的 SessionId 和取得 登陆的用户名
2.在当前的session 里取得 用户名对应的关键字 ,用关键字在application里获取SessionId ,
作比较,不相等就跳到登陆。
使用理解java 四大作用域。
思路:理解java 四大作用域的关键。
第一个地方登陆:
1.得到请求的SessionId 和 登陆的 用户名
2.把SessionId 存到application里,用户名存到当前session里
ActionContext ac = ActionContext.getContext(); Map<String, Object> applicationMap=ac.getApplication(); Map<String, Object> sesisonMap = ac.getSession(); //请求的sessionId String currentSeesionId= getRequest().getSession().getId(); applicationMap.put(loanUserE.getUname(), currentSeesionId); sesisonMap.put(CommonVar.SSO_LOGIN_NAME_KEY,loanUserE.getUname());
第二个地方登陆:
1.获取浏览器的 SessionId 和取得 登陆的用户名
2.在当前的session 里取得 用户名对应的关键字 ,用关键字在application里获取SessionId ,
作比较,不相等就跳到登陆。
拦截器: /** 初始化参数获得 */ ActionContext actionContext = arg0.getInvocationContext(); /** HttpServletRequest参数 */ HttpServletRequest request = (HttpServletRequest) actionContext.get(StrutsStatics.HTTP_REQUEST); /** HttpServletResponse参数 */ HttpServletResponse response = (HttpServletResponse) actionContext.get(StrutsStatics.HTTP_RESPONSE); /** Session参数 */ Map<String, Object> sessionMap = actionContext.getSession(); Map<String, Object> appcationMap = actionContext.getApplication(); String loginName = null; // 上下文对象中的sessionId String sessionId = null; if (!sessionMap.isEmpty()) { loginName = (String) sessionMap.get(CommonVar.SSO_LOGIN_NAME_KEY); } if (null != loginName) { sessionId = (String) appcationMap.get(loginName); } // 当前会话的sessionId String currentSessionId = request.getSession().getId(); if (!currentSessionId.equals(sessionId)) { return "loanUserLogin"; }
相关文章推荐
- java实现统一账户同一时间只能在一个地方登陆
- Java+MySql+Servlet+Ajax实现单态登陆,说白了就是一个账号只能在一个浏览器中登陆。
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
- Asp.net 实现只能允许一个账号同时只能在一个地方登录
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- asp.net 使用application实现单点登录(一个账号只能在一个地方登录)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- 一个账号只能在一个地方登陆一次
- 一个很简单的demo来演示一个账号只能同时被一个人使用(Java实现)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- asp.net mvc 简单实现一个账号只能在一个地方登录
- javaweb实现一个账号只能同时被一个人使用(Java实现)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- Asp.net 实现只能允许一个账号同时只能在一个地方登录
- jfinal+H5的websocket 实现同一账户在不同地点不同电脑只能登陆一个(互相踢下线)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- php 实现同一个账号同时只能一个人登录
- php 实现同一个账号同时只能一个人登录