loginaction.java

来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 270 行

JAVA
270
字号
package com.yuanchung.sales.struts.user;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.yuanchung.sales.constants.SystemConstant;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.admin.Rights;
import com.yuanchung.sales.model.admin.position.UserRightsFlag;
import com.yuanchung.sales.model.admin.role.UserRole;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.service.admin.AuthorizationMgrImpl;
import com.yuanchung.sales.service.admin.position.PositionMgr;
import com.yuanchung.sales.service.admin.position.UserRightsMgr;
import com.yuanchung.sales.service.admin.rights.RightsMgr;
import com.yuanchung.sales.service.admin.role.RoleMgr;
import com.yuanchung.sales.service.user.UserMgr;
import com.yuanchung.sales.struts.user.form.UserForm;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.KeyBean;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.vo.right.WebRightsView;

public class LoginAction extends DispatchAction {
	private static Logger logger = Logger.getLogger(LoginAction.class);

	private PositionMgr positionMgr;
	private UserMgr userMgr;
	private RoleMgr roleMgr;
	private RightsMgr rightsMgr;
	private UserRightsMgr userRightsMgr;

	public UserRightsMgr getUserRightsMgr() {
		return userRightsMgr;
	}

	public void setUserRightsMgr(UserRightsMgr userRightsMgr) {
		this.userRightsMgr = userRightsMgr;
	}

	public RoleMgr getRoleMgr() {
		return roleMgr;
	}

	public void setRoleMgr(RoleMgr roleMgr) {
		this.roleMgr = roleMgr;
	}

	public void setUserMgr(UserMgr userMgr) {
		this.userMgr = userMgr;
	}

	public PositionMgr getPositionMgr() {
		return positionMgr;
	}

	public void setPositionMgr(PositionMgr positionMgr) {
		this.positionMgr = positionMgr;
	}

	/**
	 * 用户登录
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public ActionForward login(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {
		logger.debug("世界末日:");
		UserForm userForm = (UserForm) form;
		String userName = userForm.getUserName();
		String password = userForm.getPassword();
		/* 加密 */
		password = new KeyBean().getkeyBeanofStr(password);
		/*start
		 * modify
		 * author:Lu Wen Bang
		 * time:2009-02-06
		 * function:email link in
		 */
		
		if(userName==null||userName.equals("")) {
			userName = request.getParameter("name");
		}
		if(password==null||password.equals("")) {
			password = request.getParameter("pw");
		}
		/*end
		 * modify
		 * author:Lu Wen Bang
		 * time:2009-02-06
		 * function:email link in
		 */
		String forward = "index";
		User user = userMgr.getUserByNameAndPass(userName, password);
		logger.debug("----------------------------"+userName);
		logger.debug("----------------------------"+password);
		logger.debug("----------------------------"+user);
		if (user == null) {
			forward = "userLogin";
			request.setAttribute("loginerror", Constants.USERNAMEPASSERROR);
		} else {
			SessionMgr.setCustSession(request, user);
			List<Rights> rights = new ArrayList();
			Map<String, WebRightsView> jspRightsControl = new HashMap<String, WebRightsView>();
			// 2009-02-03 add 加admin用户
			if (user.getUserName().equals("admin")) {
				rights = userRightsMgr.getUserRightsDao()
						.getRightsEntityByUserId(user.getId());
				//end add
			} else {
				int model = AuthorizationMgrImpl.getAuthorizationModel();
				if (model == SystemConstant.AUTHORIZATION_POSITION) {
					// 2009-01-21 add
					int rightsFlag = Constants.RIGHTS_USER_FLAG;
					UserRightsFlag userRightsFlag = userRightsMgr
							.getUserRightsFlagDAO().findById(user.getId());
					if (userRightsFlag != null) {
						if (userRightsFlag.getFlag() == Constants.RIGHTS_POSITION_FLAG) {
							rightsFlag = Constants.RIGHTS_POSITION_FLAG;
						}
					} else {
						rightsFlag = Constants.RIGHTS_POSITION_FLAG;
					}
					logger.debug("rightsFlag : " + rightsFlag);
					// end add
					if (rightsFlag == Constants.RIGHTS_POSITION_FLAG) {
						// 获取当前用户岗位权限
						rights = positionMgr.getAllRightsByPositionId(user
								.getTreeview().getId());
					}
					// 2009-01-21 add
					if (rightsFlag == Constants.RIGHTS_USER_FLAG) {
						rights = userRightsMgr.getUserRightsDao()
								.getRightsEntityByUserId(user.getId());
					}
					// end add
				} else if (model == SystemConstant.AUTHORIZATION_ROLE) {
					// 获取用户所有角色权限
					List<UserRole> ur = roleMgr.findByUserId(user.getId());
					for (int i = 0; i < ur.size(); i++) {
						List<Rights> r = roleMgr.getAllRightsByRoleId(ur.get(i)
								.getRoleId());
						rights.addAll(r);
						// logger.debug("r : " + r.get(i).getRightsName());
					}
				}
			}
			// 2009-01-21 add
			jspRightsControl = rightsMgr.getWebRightsView(rights,
					Constants.RIGHTS_FALG, Constants.JSPRIGHTSCONTROL_YES);
			// end add

			// 2009-01-21 add
			SessionMgr.setJspRightsControl(request,
					SystemConstant.JSP_RIGHTS_CONTROL, jspRightsControl);
			// end add
			// 在Session里设入用户权限
			SessionMgr.setRightsToSession(request,
					SystemConstant.SESSION_RIGHTS, rights);
			// 在Session里设入用户权限是否被修改的值,初始默认设为false
			SessionMgr.setIsUpdatedToSession(request,
					SystemConstant.SESSION_RIGHTS_IS_UPDATED, false);

			// 获取全局会话
			ServletContext application = request.getSession()
					.getServletContext();
			// 获取用户信息
			Map userInfo = (Map) application
					.getAttribute(SystemConstant.APPLICATION_USER_INFO);
			logger.debug("userInfo : " + userInfo);
			if (userInfo == null) {
				userInfo = new HashMap();
			}
			// 在全局会话里设入用户Session
			userInfo.put(user.getId(), request.getSession());
			application.setAttribute(SystemConstant.APPLICATION_USER_INFO,
					userInfo);
			logger.debug("jspRightsControl.size : " + jspRightsControl.size());
		}

		logger.debug("我登录了 :" + userForm.getUserName());
		logger.debug("userName :" + request.getParameter("userName"));
		logger.debug("登陆的用户:"+user);
		/**start
		 * modify
		 * author:Lu Wen Bang
		 * time:2009-02-06
		 * function:forward detail task
		 */
		Integer taskId = null;
		if(request.getParameter("taskId")!=null) {
			taskId = Integer.parseInt(request.getParameter("taskId"));
			request.setAttribute("taskId", taskId);
		}
		//if(taskId==null) {
			return mapping.findForward(forward);
		//} else {
			//return new ActionForward("/task.do?method=detailTask&id="+taskId);
		//}
		/**end
		 * modify
		 * author:Lu Wen Bang
		 * time:2009-02-06
		 * function:forward detail task
		 */
		
	}

	/**
	 * 注销用户
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	public ActionForward logout(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {
		User user = SessionMgr.getCustSession(request);
		if (user != null) {
			SessionMgr.logoutSession(request);
		}

		// 获取全局会话
		ServletContext application = request.getSession().getServletContext();
		// 获取用户信息
		Map userInfo = (Map) application
				.getAttribute(SystemConstant.APPLICATION_USER_INFO);
		if (userInfo != null) {
			if (userInfo.get(user.getId()) != null) {
				// 在全局会话里移除用户Session
				userInfo.remove(user.getId());
			}
		}
		return mapping.findForward("userLogin");
	}

	public RightsMgr getRightsMgr() {
		return rightsMgr;
	}

	public void setRightsMgr(RightsMgr rightsMgr) {
		this.rightsMgr = rightsMgr;
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?