📄 login.java
字号:
package com.laoer.bbscs.web.action;
import java.util.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.laoer.bbscs.bean.*;
import com.laoer.bbscs.exception.*;
import com.laoer.bbscs.service.*;
import com.laoer.bbscs.service.config.*;
import com.laoer.bbscs.web.form.*;
import com.laoer.comm.util.*;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import com.laoer.bbscs.web.servlet.UserCookie;
import org.apache.commons.lang.*;
public class Login
extends BaseAction {
private static final Log logger = LogFactory.getLog(Login.class);
private SysConfig sysConfig;
private UserService userService;
private UserOnlineService userOnlineService;
private LoginErrorService loginErrorService;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
ActionMessages errors = new ActionMessages();
this.setUrlRewrite(request);
if (loginForm.getAction().equalsIgnoreCase("index")) {
/*
loginForm.setAction("login");
String tourl = "";
try {
tourl = BBSCSUtil.absoluteActionURL(request, "/main").toString();
}
catch (MalformedURLException ex) {
tourl = "main.bbscs";
}
if (this.getSysConfig().isUsePass()) {
request.setAttribute("actionUrl", this.getSysConfig().getPassUrl());
request.setAttribute("tourl", tourl);
return mapping.findForward("passLogin");
}
else {
loginForm.setTourl(tourl);
return mapping.findForward("login");
}*/
return ActionUtils.getLoginForward(mapping, request, this.getSysConfig(), "index");
}
if (loginForm.getAction().equalsIgnoreCase("admin")) {
/*
loginForm.setAction("login");
String tourl = "";
try {
tourl = BBSCSUtil.absoluteActionURL(request, "/adminMain").toString();
}
catch (MalformedURLException ex) {
tourl = "main.bbscs";
}
if (this.getSysConfig().isUsePass()) {
request.setAttribute("actionUrl", this.getSysConfig().getPassUrl());
request.setAttribute("tourl", tourl);
return mapping.findForward("passLogin");
}
else {
loginForm.setTourl(tourl);
return mapping.findForward("login");
}*/
return ActionUtils.getLoginForward(mapping, request, this.getSysConfig(), "admin");
}
if (loginForm.getAction().equalsIgnoreCase("login")) {
UserInfo ui = this.getUserService().findUserInfoByUserName(loginForm.getUsername());
if (ui == null) { //用户名不存在
errors.add("error.adminlogin.usernoexist", new ActionMessage("error.adminlogin.usernoexist"));
this.saveErrors(request, errors);
return mapping.getInputForward();
}
if (this.getSysConfig().isUseSafeLogin()) {
if (this.getLoginErrorService().isCanNotLogin(ui.getId())) {
errors.add("error.login.times", new ActionMessage("error.login.times"));
this.saveErrors(request, errors);
return mapping.getInputForward();
}
}
if (!Util.hash(loginForm.getPasswd()).equals(ui.getRePasswd())) { //密码错误
if (this.getSysConfig().isUseSafeLogin()) {
try {
this.getLoginErrorService().createLoginError(ui.getId());
}
catch (BbscsException ex1) {
logger.error(ex1);
}
}
errors.add("error.adminlogin.passwd", new ActionMessage("error.adminlogin.passwd"));
this.saveErrors(request, errors);
return mapping.getInputForward();
}
HttpSession session = request.getSession();
String authCode = (String) session.getAttribute("authCode");
if (StringUtils.isBlank(authCode) || !authCode.equals(loginForm.getAuthCode())) {
errors.add("error.login.authcode", new ActionMessage("error.login.authcode"));
this.saveErrors(request, errors);
return mapping.getInputForward();
}
ui.setLastLoginIP(ui.getLoginIP());
ui.setLastLoginTime(ui.getLoginTime());
ui.setLoginIP(request.getRemoteAddr());
ui.setLoginTime(new Date());
ui.setUserLocale(request.getLocale().toString());
long nowTime = System.currentTimeMillis();
UserOnline uo = new UserOnline();
uo.setAtPlace("");
uo.setBoardID(0);
uo.setNickName(ui.getNickName());
uo.setOnlineTime(nowTime);
uo.setUserGroupID(ui.getGroupID());
uo.setUserID(ui.getId());
uo.setUserName(ui.getUserName());
uo.setValidateCode(ui.getId() + "_" + nowTime);
if (loginForm.getHiddenLogin() == 1 || ui.getHiddenLogin() == 1) { //用户隐身登录
uo.setHiddenUser(1);
}
try {
ui = this.getUserService().saveAtLogin(ui); //用户登录处理
this.getUserService().writeUserFile(ui); //写用户个人文件
uo = this.getUserOnlineService().createUserOnline(uo); //加入在线用户表
}
catch (BbscsException ex) {
logger.error(ex);
return mapping.getInputForward();
}
/*
HttpSession session = request.getSession();
UserSession us = new UserSession();
us.setId(ui.getId());
us.setUserName(ui.getUserName());
us.setNickName(ui.getNickName());
Map[] pmap = this.getUserService().getUserPermission(ui);
Set pset = pmap[0].entrySet();
Iterator it = pset.iterator();
while (it.hasNext()) {
Map.Entry p = (Map.Entry) it.next();
//System.out.println(p);
Permission permission = (Permission) p.getValue();
us.getUserPermission().put(BBSCSUtil.getActionMappingURL( (String) p.getKey(), request) +
"?action=" + permission.getAction(), p.getValue());
}
us.setSpecialPermission(pmap[1]);
//session.setAttribute(Constant.ADMIN_SESSION_KEY, ui.getUserName());
session.setAttribute(Constant.ADMIN_SESSION_KEY, us);*/
Map[] pmap = this.getUserService().getUserPermission(ui);
ActionUtils.createUserSession(request, ui, pmap, uo);
UserCookie uc = new UserCookie(request, response, this.getSysConfig());
uc.addCookies(ui, -1);
//return new ActionForward(BBSCSUtil.getActionMappingURL("/adminMain"), true);
return new ActionForward(loginForm.getTourl(), true);
}
return mapping.getInputForward();
}
public SysConfig getSysConfig() {
return sysConfig;
}
public UserService getUserService() {
return userService;
}
public UserOnlineService getUserOnlineService() {
return userOnlineService;
}
public LoginErrorService getLoginErrorService() {
return loginErrorService;
}
public void setSysConfig(SysConfig sysConfig) {
this.sysConfig = sysConfig;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public void setUserOnlineService(UserOnlineService userOnlineService) {
this.userOnlineService = userOnlineService;
}
public void setLoginErrorService(LoginErrorService loginErrorService) {
this.loginErrorService = loginErrorService;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -