package com.baidu.disconf.web.web.auth.login.impl;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.baidu.disconf.web.service.user.bo.User;
import com.baidu.disconf.web.service.user.constant.UserConstant;
import com.baidu.disconf.web.service.user.dto.Visitor;
import com.baidu.disconf.web.service.user.service.UserMgr;
import com.baidu.disconf.web.web.auth.login.RedisLogin;
import com.baidu.ub.common.commons.ThreadContext;
/**
* @author liaoqiqi
* @version 2014-2-4
*/
public class RedisLoginImplMock implements RedisLogin {
@Autowired
private UserMgr userMgr;
/**
* 校验Redis是否登录
*/
@Override
public Visitor isLogin(HttpServletRequest request) {
Long userId = 1L;
User user = userMgr.getUser(userId);
Visitor visitor = new Visitor();
visitor.setId(userId);
visitor.setLoginUserId(userId);
visitor.setLoginUserName(user.getName());
return visitor;
}
@Override
public void login(HttpServletRequest request, User user, int expireTime) {
Visitor visitor = new Visitor();
visitor.setId(user.getId());
visitor.setLoginUserId(user.getId());
visitor.setLoginUserName(user.getName());
//
// 更新session
//
updateSessionVisitor(request.getSession(), visitor);
}
@Override
public void updateSessionVisitor(HttpSession session, Visitor visitor) {
if (visitor != null) {
// 更新
session.setAttribute(UserConstant.USER_KEY, visitor);
} else {
// 删除
session.removeAttribute(UserConstant.USER_KEY);
}
ThreadContext.putSessionVisitor(visitor);
}
@Override
public void logout(HttpServletRequest request) {
// 更新session
updateSessionVisitor(request.getSession(), null);
}
}