package cn.newgxu.bbs.web.action.admin; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import cn.newgxu.bbs.common.AuthorizationManager; import cn.newgxu.bbs.common.exception.BBSException; import cn.newgxu.bbs.common.util.Util; import cn.newgxu.bbs.domain.user.User; import cn.newgxu.bbs.service.AdministratorService; import cn.newgxu.bbs.service.UserService; import cn.newgxu.bbs.web.action.AbstractBaseAction; import cn.newgxu.bbs.web.action.accounts.LoginAction; import cn.newgxu.bbs.web.model.accounts.LoginModel; import com.opensymphony.webwork.interceptor.SessionAware; import com.opensymphony.xwork.ModelDriven; /** * * @author hjc * @since 4.0.0 * @version $Revision 1.1$ */ public class AdminLoginDoAction extends AbstractBaseAction implements SessionAware, ModelDriven { private static final long serialVersionUID = 8530233371159027615L; private static final Log log = LogFactory.getLog(LoginAction.class); private Map<String, String> session; private LoginModel model = new LoginModel(); private AdministratorService administratorService; private String originalUrl = null; public void setAdministratorService( AdministratorService administratorService) { this.administratorService = administratorService; } public String execute() throws Exception { //MessageList m = new MessageList(); try { model.setRightCode(Util.getValidCode(getSession())); model.setIp(getRequest().getRemoteAddr()); User user=administratorService.login(model); session.put("admin", "ok"); userService.deleteOnlineUser(getAuthorization()); AuthorizationManager.saveAdminAuthorization(getSession(), user); return SUCCESS; } catch (BBSException e) { model.setRightCode(e.getMessage()); //e.printStackTrace(); //m.addMessage(e.getMessage()); //Util.putMessageList(m, getSession()); log.debug(e); return ERROR; } } @SuppressWarnings({ "unchecked", "rawtypes" }) public void setSession(Map session) { this.session = session; } public Object getModel() { return this.model; } public void setUserService(UserService userService){ super.userService=userService; } public String getOriginalUrl() { if (log.isDebugEnabled()) { log.debug("originalUrl = " + originalUrl); } return originalUrl; } public String getRedirect() { return getOriginalUrl(); } public void setOriginalUrl(String originalUrl) { this.originalUrl = originalUrl; if (StringUtils.isEmpty(this.originalUrl)) { this.originalUrl = "/index.yws"; } } }