package action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.ServletActionContext; import pojo.SiteUser; import pojo.WebsiteMessage; import service.SiteUserService; import service.WebsiteMessageService; import util.MD5Util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.util.Map; /** * User: wangyan * Date: 5/19/12 * Time: 10:08 AM. */ public class LoginAction extends ActionSupport { private String username; private String password; private SiteUserService siteUserService; private WebsiteMessageService websiteMessageService; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public SiteUserService getSiteUserService() { return siteUserService; } public void setSiteUserService(SiteUserService siteUserService) { this.siteUserService = siteUserService; } public WebsiteMessageService getWebsiteMessageService() { return websiteMessageService; } public void setWebsiteMessageService(WebsiteMessageService websiteMessageService) { this.websiteMessageService = websiteMessageService; } public void validate() { if (this.username == null) this.addFieldError(username, "you must set a username"); if (this.password == null) this.addFieldError(password, "you must set a password"); } public String execute() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); request.setCharacterEncoding("utf-8"); WebsiteMessage websiteMessage=websiteMessageService.getWebsiteMessage(); ActionContext context = ActionContext.getContext(); Map application = (Map) context.getApplication(); int count=websiteMessage.getVisits(); count=count+1; session.setAttribute("visits", count); websiteMessage.setVisits(count); websiteMessageService.updateWebsiteVisits(websiteMessage); SiteUser userone = siteUserService.getSiteUserByInstituteId(this.username); SiteUser usertwo = siteUserService.getSiteUserByEmail(this.username); if (userone != null) { Boolean active = userone.getActive(); if (active == false) { Boolean banned = userone.getBanned(); if (banned == false) { String passwordstring = MD5Util.hashString(this.password + userone.getSalt()); if (this.username.equals(userone.getInstituteId()) && passwordstring.equals(userone.getPassword())) { session.setAttribute("user", userone); return SUCCESS; } } } } else if (usertwo != null) { Boolean active = usertwo.getActive(); if (active == false) { Boolean banned = usertwo.getBanned(); if (banned == false) { String passwordstring = MD5Util.hashString(this.password + usertwo.getSalt()); System.out.println(passwordstring); if (this.username.equals(usertwo.getEmail()) && passwordstring.equals(usertwo.getPassword())) { session.setAttribute("user", usertwo); return SUCCESS; } } } } this.addActionError("登录失败!"); return INPUT; } }