⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login.java

📁 一个jsp写的bbs
💻 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 + -