📄 userlogin.java
字号:
/*
* Created on 2007-2-10
* Last modified on 2007-6-26
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.service.user;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.model.UserModel;
import com.yeqiangwei.club.service.model.UserSettingsModel;
import com.yeqiangwei.club.service.util.BasicInfoService;
import com.yeqiangwei.club.util.BeanUtils;
import com.yeqiangwei.club.util.MessageUtils;
import com.yeqiangwei.club.util.PostUtils;
import com.yeqiangwei.util.Validator;
import com.yeqiangwei.club.controller.form.UserLoginForm;
import com.yeqiangwei.club.exception.ClubException;
import com.yeqiangwei.club.view.model.UserView;
import com.yeqiangwei.util.FormatDateTime;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.TypeChange;
/**
*
* @author yeqiangwei
*/
public class UserLogin {
private static final Logger logger = Logger.getLogger(UserLogin.class);
public static UserSettingsModel getUserSettingsModel(HttpServletRequest request){
return UserLogin.getUserSettingsService().getUserSettingsModel(UserLogin.getUserId(request));
}
public static int getUserId(HttpServletRequest request){
UserModel user = getUserModel(request);
if(!Validator.isEmpty(user)){
return user.getUserId();
}else{
return 0;
}
}
public static String getUserName(HttpServletRequest request) {
UserModel user = getUserModel(request);
if(!Validator.isEmpty(user)){
return user.getUserName();
}else{
return null;
}
}
public static UserModel getUserModel(HttpServletRequest request) {
return ParamUtils.getSessionObject(request,"User", null);
}
public static void setCookies(HttpServletRequest request
,HttpServletResponse response, UserModel model, int days)
{
logger.debug("set cookie password is "+model.getPassword());
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserId",String.valueOf(model.getUserId()), days);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserName",model.getUserName(), days);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWpassword",model.getPassword(), days);
ParamUtils.setSession(request,"User",model);
}
/**
* 登录失效后初始化登录
* @param service
*/
public static UserModel loginInit(HttpServletRequest request, UserService service){
UserModel model = (UserModel) ParamUtils.getSessionObject(request,"User",null);
if(model==null){
int userId = TypeChange.stringToInt(ParamUtils.getCookieValue(request, "YQWuserId",null));
String userName = ParamUtils.getCookieValue(request, "YQWuserName",null);
String password = ParamUtils.getCookieValue(request, "YQWpassword",null);
model = new UserModel();
model.setUserId(userId);
model.setUserName(userName);
model.setPassword(password);
model.setLastLoginDateTime(FormatDateTime.now());
model.setLastLoginIp(request.getRemoteAddr());
try {
model = service.findByUserNameAndPassword(model,false);
ParamUtils.setSession(request,"User",model);
} catch (ClubException e) {
logger.error(e.toString());
}
}
return model;
}
/**
* 登录成功后数据SET
* @param user
* @param days
*/
public static UserModel login(HttpServletRequest request,HttpServletResponse response
, UserService service, UserLoginForm f){
int days = f.getRemember();
UserModel model = new UserModel();
BeanUtils.copyProperties(model,f);
int num = ParamUtils.getSessionInt(request,"loginPosts",0);
String rand = ParamUtils.getSessionString(request,"rand","");
if(num>=3){
if(!f.getRand().equals(rand)){
request.setAttribute("message",MessageUtils.getMessage("error_post_rand"));
return null;
}
}
try {
model = service.findByUserNameAndPassword(model,true);
} catch (ClubException e) {
logger.error(e.toString());
}
if(!Validator.isEmpty(model)){
setCookies(request,response,model,days);
PostUtils.removeNumber(request,"loginPosts");
}
return model;
}
public static UserModel getInstance(HttpServletRequest request){
return (UserModel) ParamUtils.getSessionObject(request,"User",null);
}
public static UserView getInstanceV(HttpServletRequest request){
UserModel user = (UserModel) ParamUtils.getSessionObject(request,"User",null);
if(!Validator.isEmpty(user)){
UserView view = new UserView();
BeanUtils.copyProperties(view,user);
return view;
}else{
return null;
}
}
public static void update(HttpServletRequest request, UserModel user){
ParamUtils.setSession(request,"User",user);
}
public static void logout(HttpServletRequest request,HttpServletResponse response){
update(request, null);
ParamUtils.setSession(request,"User",null);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserId",null, 0);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWuserName",null, 0);
ParamUtils.setCookieValue(response,getBasicInfoService().cookieDomain(),"YQWpassword",null, 0);
logger.info("loginOut");
}
public static BasicInfoService getBasicInfoService() {
return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
}
public static UserSettingsService getUserSettingsService() {
return ServiceWrapper.<UserSettingsService>getSingletonInstance(ServiceLocator.USERSETTINGS);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -