⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wapaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
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 + -