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 + -
显示快捷键?