📄 wapaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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 cn.jsprun.domain.Members;
import cn.jsprun.domain.Posts;
import cn.jsprun.domain.Searchindex;
import cn.jsprun.domain.Threads;
import cn.jsprun.foreg.service.SearchService;
import cn.jsprun.foreg.service.WapService;
import cn.jsprun.foreg.utils.CookieUtil;
import cn.jsprun.foreg.vo.wap.Forums_threadsVO;
import cn.jsprun.foreg.vo.wap.HomeVO;
import cn.jsprun.foreg.vo.wap.LoginVO;
import cn.jsprun.foreg.vo.wap.MyCollectionVO;
import cn.jsprun.foreg.vo.wap.MyVO;
import cn.jsprun.foreg.vo.wap.NewReplyVO;
import cn.jsprun.foreg.vo.wap.NewThreadVO;
import cn.jsprun.foreg.vo.wap.PmListVO;
import cn.jsprun.foreg.vo.wap.PmSendVO;
import cn.jsprun.foreg.vo.wap.PmVO;
import cn.jsprun.foreg.vo.wap.PmViewVO;
import cn.jsprun.foreg.vo.wap.RegisterVO;
import cn.jsprun.foreg.vo.wap.SearchResultVO;
import cn.jsprun.foreg.vo.wap.SearchVO;
import cn.jsprun.foreg.vo.wap.StatsVO;
import cn.jsprun.service.posts.PostsService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.Log;
import cn.jsprun.utils.Mail;
import cn.jsprun.utils.Md5Token;
public class WapAction extends DispatchAction {
private DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
private WapService wapService = (WapService)BeanFactory.getBean("wapService");
private MemberService memberService = (MemberService) BeanFactory.getBean("memberService");
private DataBaseService dataBaseService = (DataBaseService)BeanFactory.getBean("dataBaseService");
private ThreadsService threadService = (ThreadsService) BeanFactory.getBean("threadsService");
private PostsService postService = (PostsService) BeanFactory.getBean("postsService");
private SearchService searchService = (SearchService) BeanFactory.getBean("searchserver");
private final String tablePre = "jrun_";
public ActionForward home(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
Members memberInSession = (Members)session.getAttribute("user");
String formhashInSession = (String)session.getAttribute("formhash");
String sid = session.getId();
Map<String,String> settingMap = (Map<String,String>)request.getAttribute("settings");
if(!wapService.validateWap(request, response, settingMap, memberInSession, formhashInSession,sid)){
return null;
}
Map<String,String> userGroupMap = (Map<String,String>)request.getAttribute("usergroups");
request.setAttribute("jsprun_action", "191");
HomeVO homeVO = wapService.getHomeVO(request, settingMap, memberInSession, userGroupMap.get("allowsearch"), formhashInSession,sid);
request.setAttribute("valueObject", homeVO);
return mapping.findForward("home");
}
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
HttpSession session = request.getSession();
Members memberInSession = (Members)session.getAttribute("user");
String formhashInSession = (String)session.getAttribute("formhash");
String sid = session.getId();
Map<String,String> settingMap = (Map<String,String>)request.getAttribute("settings");
if(!wapService.validateWap(request, response, settingMap, memberInSession, formhashInSession,sid)){
return null;
}
String logout = request.getParameter("logout");
if(logout == null){
String username = request.getParameter("username");
if(username == null || username.equals("")){
LoginVO loginVO = wapService.getLoginVO(request, settingMap, null, formhashInSession, sid,false,"",null);
request.setAttribute("valueObject", loginVO);
return mapping.findForward("login");
}else{
String onlineIp = request.getRemoteAddr();
int timestamp = (Integer)request.getAttribute("timestamp");
if(!wapService.loginCheck(onlineIp, timestamp)){
wapService.forwardToMessage(request, response, settingMap, "累计5次密码错误,15分钟内不能登录", null, settingMap.get("bbname"), memberInSession, "login", formhashInSession, sid);
return null;
}
String password = request.getParameter("password");
String answer = request.getParameter("answer");
String questionid = request.getParameter("questionid");
String secques = Common.quescrypt(Integer.parseInt(questionid), answer);
String loginauth = request.getParameter("loginauth");
String md5_password = "";
Md5Token md5 = Md5Token.getInstance();
if(loginauth!=null&&!loginauth.equals("")){
String[] loginauthArray = Common.authcode(loginauth, "DECODE", md5.getLongToken(settingMap.get("authkey")),null).split("\t");
username = loginauthArray[0].replace("\\", "\\\\").replace("\"", "\\\"").replace("'", "\\'").trim();
md5_password = loginauthArray[1].replace("\\", "\\\\").replace("\"", "\\\"").replace("'", "\\'").trim();
}else{
md5_password = md5.getLongToken(password);
}
String usernameadd = username.matches("^\\d+$") ? "(uid='"+username+"' OR username='"+username+"')" :"username='"+username+"'";
List<Map<String,String>> memberMapList = dataBaseService.executeQuery("SELECT * FROM "+tablePre+"members WHERE "+usernameadd);
boolean failedLogin = true;
if(memberMapList!=null && memberMapList.size()>0){
Map<String,String> memberMap = memberMapList.get(0);
String jsprun_uid = memberMap.get("uid");
String jsprun_pw = memberMap.get("password");
if(jsprun_uid!=null&&!jsprun_uid.equals("")&&!jsprun_uid.equals("0")&&md5_password.equals(jsprun_pw)){
failedLogin = false;
String jsprun_secques = memberMap.get("secques");
if(jsprun_secques!=null&&!jsprun_secques.equals(secques)){
loginauth = Common.authcode(memberMap.get("username")+"\t"+jsprun_pw, "ENCODE", md5.getLongToken(settingMap.get("authkey")),null);
LoginVO loginVO = wapService.getLoginVO(request, settingMap, null, formhashInSession, sid,true,memberMap.get("username"),loginauth);
request.setAttribute("valueObject", loginVO);
return mapping.findForward("login");
}else{
try{
memberInSession = wapService.turnToMember(memberMap);
}catch(Exception exception){
exception.printStackTrace();
}
CookieUtil.setCookie(request, response, "uid", String.valueOf(memberInSession.getUid()), 2592000, true,settingMap);
CookieUtil.setCookie(request, response, "cookietime", String.valueOf(2592000), 31536000, true,settingMap);
CookieUtil.setCookie(request, response, "auth", Md5Token.getInstance().getLongToken(memberInSession.getPassword()+"\t"+memberInSession.getSecques()+"\t"+memberInSession.getUid()), 2592000, true,settingMap);
session.setAttribute("jsprun_uid", memberInSession.getUid());
session.setAttribute("jsprun_userss", memberInSession.getUsername());
session.setAttribute("jsprun_groupid", memberInSession.getGroupid());
session.setAttribute("jsprun_adminid", memberInSession.getAdminid());
session.setAttribute("jsprun_pw", memberInSession.getPassword());
session.setAttribute("formhash", Common.getRandStr(8,false));
session.setAttribute("user", memberInSession);
String stytleId = memberInSession.getStyleid()!=0?memberInSession.getStyleid().toString():settingMap.get("styleid");
session.setAttribute("styleid",stytleId);
CookieUtil.setCookie(request, response, "auth", Common.authcode(jsprun_pw+"\t"+jsprun_secques+"\t"+jsprun_uid, "ENCODE", md5.getLongToken(settingMap.get("authkey")),null), 2592000, true, settingMap);
wapService.forwardToMessage(request, response, settingMap, memberMap.get("username")+"成功登录", null, settingMap.get("bbname"), memberInSession, "login", formhashInSession, sid);
return null;
}
}
if(failedLogin){
String errorlog = Common.dhtmlspecialchars(timestamp+"\t"+(memberMap.get("username")!=null ? memberMap.get("username") : stripslashes(username))+"\t"+
password+"\t"+(secques!=null&&!secques.equals("")?"Ques #"+Integer.parseInt(questionid):"")+"\t"+onlineIp);
Log.writelog(servlet.getServletContext().getRealPath("/"), "illegallog", errorlog);
wapService.forwardToMessage(request, response, settingMap, "用户名或密码有误,您共有5次尝试机会", null, settingMap.get("bbname"), memberInSession, "login", formhashInSession, sid);
return null;
}
}
}
}else{
String formhashInRequest = request.getParameter("formhash");
if((formhashInRequest!=null&&formhashInRequest.equals(formhashInSession))||true){
session.removeAttribute("sid");
session.setAttribute("jsprun_uid", 0);
session.setAttribute("jsprun_userss", "");
session.setAttribute("jsprun_pw", "");
session.removeAttribute("user");
session.setAttribute("jsprun_groupid",(short)7);
session.setAttribute("jsprun_adminid",(byte)0);
session.setAttribute("styleid", settingMap.get("styleid"));
wapService.forwardToMessage(request, response, settingMap, "成功退出登录", null, settingMap.get("bbname"), memberInSession, "login", formhashInSession, sid);
return null;
}
}
return null;
}
public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
int timestamp = (Integer)request.getAttribute("timestamp");
Map<String,String> settingMap = (Map<String,String>)request.getAttribute("settings");
HttpSession session = request.getSession();
String sid = session.getId();
Members memberInSession = (Members)session.getAttribute("user");
String formhashInSession = (String)session.getAttribute("formhash");
Integer jsprun_uid = (Integer)session.getAttribute("jsprun_uid");
if(!wapService.validateWap(request, response, settingMap, memberInSession, formhashInSession,sid)){
return null;
}
String wapregister = settingMap.get("wapregister");
if(wapregister==null||wapregister.equals("")||wapregister.equals("0")){
wapService.forwardToMessage(request, response, settingMap, "此论坛禁止通过WAP注册", null, settingMap.get("bbname"), memberInSession, "register", formhashInSession, sid);
return null;
}
if(jsprun_uid!=null&&jsprun_uid>0){
Map<String,String> forwardMap = new HashMap<String, String>();
forwardMap.put("link", "index.jsp");
forwardMap.put("title", "返回");
wapService.forwardToMessage(request, response, settingMap, memberInSession.getUsername()+"成功登录", forwardMap, settingMap.get("bbname"), memberInSession, "register", formhashInSession, sid);
return null;
}
String[] initcredits=settingMap.get("initcredits").split(",");
int initcredit1=Integer.valueOf(initcredits[0]);
int initcredit2=Integer.valueOf(initcredits[1]);
int initcredit3=Integer.valueOf(initcredits[2]);
int initcredit4=Integer.valueOf(initcredits[3]);
int initcredit5=Integer.valueOf(initcredits[4]);
int initcredit6=Integer.valueOf(initcredits[5]);
int initcredit7=Integer.valueOf(initcredits[6]);
int initcredit8=Integer.valueOf(initcredits[7]);
int credits = initcredit1+initcredit2+initcredit3+initcredit4+initcredit5+initcredit6+initcredit7+initcredit8;
int regverify=Integer.valueOf(settingMap.get("regverify"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -