📄 loginaction.java
字号:
/**
*
*/
package com.sunwah.baseapp.system.action;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
import com.sunwah.baseapp.common.Constants;
import com.sunwah.baseapp.common.SqlConstants;
import com.sunwah.baseapp.service.QueryManager;
import com.sunwah.baseapp.system.criteria.FunctionQueryCriteria;
import com.sunwah.baseapp.system.model.Functions;
import com.sunwah.baseapp.system.model.Users;
import com.sunwah.baseapp.system.service.UserManager;
import com.sunwah.baseapp.system.service.UserManagerResult;
import com.sunwah.baseapp.system.service.UserManagerStatusCodes;
import com.sunwah.baseapp.system.vo.UserVO;
/**
* 用户登录ACTION类
*
* @author MARK
*
*/
public class LoginAction extends ActionSupport implements SessionAware {
/**
*
*/
private static final long serialVersionUID = 2077381350562494083L;
private static Logger logger = Logger
.getLogger(LoginAction.class.getName());
private Map session;
private UserManager userManager;
private QueryManager queryManager;
private String loginName;
private String password;
private String validateCode;
@Override
public String execute() throws Exception {
String result = INPUT;
Object obj = session.get(Constants.SESSION_VER_CODE);
// 验证码过期
if (obj == null) {
addFieldError("validateCode", getText("validateCode.overdue"));
result = LOGIN;
} else {
String verCode = (String) obj;
// 失效验证码
session.put(Constants.SESSION_VER_CODE, null);
if (verCode.equals(validateCode)) {
UserManagerResult manageResult = this.userManager.login(
loginName, password);
switch (manageResult.getStatusCode()) {
case UserManagerStatusCodes.INVALID_LOGIN_NAME:
this.addActionError(getText("loginName.error"));
break;
case UserManagerStatusCodes.OVERDUE_LOGIN_NAME:
this.addActionError(getText("loginName.overdue"));
break;
case UserManagerStatusCodes.INVALID_PASSWORD:
this.addActionError(getText("password.error"));
break;
case UserManagerStatusCodes.OVERDUE_PASSWORD:
this.addActionError(getText("password.overdue"));
break;
case UserManagerStatusCodes.OK:
// 登录成功
Users user = manageResult.getUser();
UserVO userVO = new UserVO();
userVO.setUserId(user.getUserId());
userVO.setUserName(user.getUserName());
userVO.setLoginName(user.getLoginName());
userVO.setResourceList(manageResult.getResourceList());
session.put(Constants.SESSION_USER, userVO);
List functionList = null;
// 获取菜单
if (user.getUserId().equals(Constants.ROOT_USER_ID))
functionList = this.queryManager
.queryForList(SqlConstants.GET_ALL_AVAILABLE_MENUS);
else {
FunctionQueryCriteria queryCriteria = new FunctionQueryCriteria();
queryCriteria.setUserId(user.getUserId());
functionList = this.queryManager.queryForList(
SqlConstants.GET_USER_AVAILABLE_MENUS,
queryCriteria);
}
StringBuffer buffer = new StringBuffer(
"<script type=\"text/javascript\">");
buffer.append("d = new dTree('d');");
buffer.append("d.config.folderLinks=false;");
buffer.append("d.add(0,-1,'');");
Functions function = null;
for (Object object : functionList) {
function = (Functions) object;
buffer.append("d.add(");
buffer.append(function.getFunctionId());
buffer.append(",");
buffer.append(function.getParentFuncId());
buffer.append(",'");
buffer.append(function.getFunctionName());
buffer.append("','");
buffer.append(function.getAssemblyName());
buffer.append("');");
}
buffer.append("document.write(d);");
buffer.append("</script>");
session.put(Constants.SESSION_MENU, buffer.toString());
result = SUCCESS;
logger.debug(user.getLoginName() + " login success");
break;
default:
result = ERROR;
}
} else {
this.addActionError(getText("validateCode.error"));
}
}
return result;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getValidateCode() {
return validateCode;
}
public void setValidateCode(String validateCode) {
this.validateCode = validateCode;
}
public void setSession(Map session) {
this.session = session;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
public void setQueryManager(QueryManager queryManager) {
this.queryManager = queryManager;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -