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

📄 cookieverifyaction.java

📁 SSH下实现用户登陆的COOKIE验证方法
💻 JAVA
字号:
package com.db711.web.action.admin.login;

import java.util.Date;
import java.util.List;
import java.net.URLDecoder;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import com.db711.data.bean.DBFirstSort;
import com.db711.data.bean.TIndexadmin;
import com.db711.data.bean.UserInfo;
import com.db711.data.dao.IDBFirstSortDAO;
import com.db711.data.dao.IDBSortDAO;
import com.db711.data.dao.ITIndexadminDAO;
import com.db711.model.service.INoneAdminPriService;
import com.db711.model.service.IUserService;
import com.db711.sys.Constant;
import com.db711.sys.StringUtil;
import com.db711.web.form.LoginForm;

public class CookieVerifyAction extends Action {

	/*
	 * Generated Methods
	 */
	static Logger logger = Logger.getLogger(CookieVerifyAction.class);

	private IUserService userService;

	private INoneAdminPriService noneAdminPriService;

	private IDBFirstSortDAO dbfirstsortDAO;

	private IDBSortDAO dbsortDAO;

	private ITIndexadminDAO indexadminDAO;

	@SuppressWarnings("deprecation")
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession(true);
		LoginForm loginForm = (LoginForm) form;
		ActionMessages errors = new ActionMessages();
		List list = dbfirstsortDAO.findByFirstsortname("公共");
		List publicsortList = dbsortDAO.findByDbfirstsort((DBFirstSort) list
				.get(0));
		list = dbfirstsortDAO.findByFirstsortname("行业");
		List tradesortList = dbsortDAO.findByDbfirstsort((DBFirstSort) list
				.get(0));
		TIndexadmin Indexadmin = (TIndexadmin) indexadminDAO.findAll().get(0);
		// 全文检索开关全局变量
		Long indexSwitch = 0L;
		if (indexSwitch.equals(null)) {
			indexSwitch = 0L;
		} else {
			indexSwitch = Indexadmin.getIndexswitch();
		}
		UserInfo user = null;
		String id = request.getParameter("id");
		if (id != null && id.equals("sys")) {// 链接进入系统首页
			user = (UserInfo) session.getAttribute(Constant.USER);
		} else {// 登录进入首页
			// 判断用户是否存在
			user = this.isValidate(request);
		}
		if (user != null) {
			// 如果不是系统管理员,判断用户的帐号是否过期
			if (user.getUserRole().equalsIgnoreCase("user")) {
				Date date = new Date();
				// 当前年
				Integer year = date.getYear() + 1900;
				// 当前月
				Integer month = date.getMonth() + 1;
				String newmonth = null;
				if (month < 10) {
					newmonth = "0" + month.toString();
				} else {
					newmonth = month.toString();
				}
				// 当前日
				Integer day = date.getDate();
				String newday = null;
				if (day < 10) {
					newday = "0" + day.toString();
				} else {
					newday = day.toString();
				}
				// 当前时间
				String datenow = year.toString() + "-" + newmonth + "-"
						+ newday;

				// 如果授权有效期比当前时间小,则提示用户权限已超期,不能登陆
				if (user.getUserValidity().compareTo(datenow) < 0) {
					errors.add("errorMessage", new ActionMessage(
							"error.invalidation"));
					saveErrors(request, errors);
					return mapping.findForward("grantsfailure");
				}
			}
			// 保存索引开关值
			session.setAttribute("INDEXSWITCH", indexSwitch);
			session.setAttribute("USER", user);

			if (user.getUserRole().equalsIgnoreCase("admin")) {
				session.setAttribute(Constant.USER, user);
				session.setAttribute("USERROLE", user.getUserRole());
				logger.warn(StringUtil.getLogString(user.getUserAccount(),
						Constant.LOGIN));
				// 初始化树形菜单
				session.setAttribute("PUBLICDBSORT",
						publicsortList);
				session.setAttribute("TRADEDBSORT", tradesortList);
				return mapping.findForward("success");
			} else if (user.getUserRole().equalsIgnoreCase("user")) {
				// 同时将其所具有的权限保存起来,为页面实现动态权限调用
				List USERPRILIST = noneAdminPriService.findByUserroleId(user
						.getUserroleId());
				session.setAttribute(Constant.USERPRILIST, USERPRILIST);
				session.setAttribute(Constant.USER, user);
				session.setAttribute("USERROLE", user.getUserRole());
				// 初始化树形菜单
				session.setAttribute("PUBLICDBSORT",
						publicsortList);
				session.setAttribute("TRADEDBSORT", tradesortList);
				return mapping.findForward("success");
			} else {
				errors.add("errorMessage", new ActionMessage("error.login"));
				saveErrors(request, errors);
				return mapping.findForward("grantsfailure");
			}

		} else {
			errors.add("errorMessage", new ActionMessage("error.id"));
			saveErrors(request, errors);
			return mapping.findForward("grantsfailure");
		}

	}

	public UserInfo isValidate(HttpServletRequest request) {

		Cookie[] cookies = request.getCookies();
		if (cookies == null)
			cookies = new Cookie[0];
		String id = "";// 用户标识
		String name = "";// 用户姓名
		try {
			for (int i = 0; i < cookies.length; i++) {
				Cookie cookie = cookies[i];
				if ("KOAL_CERT_CN".equals(cookie.getName()))// 读取用户标识
				{

					id = new String(URLDecoder.decode(cookie.getValue(),"GBK"));
				} else if ("KOAL_CERT_GN".equals(cookie.getName()))// 读取用户姓名
				{

					name = new String(URLDecoder.decode(cookie.getValue(),"GBK"));
				} else {
					continue;
				}
			}
		} catch (Exception e) {
		}
		if(id.equals("")||name.equals("")){
			return null;
		}
		return userService.isValidUserByIdandName(id, name);
	}

	public IUserService getUserService() {
		return userService;
	}

	public void setUserService(IUserService userService) {
		this.userService = userService;
	}

	public INoneAdminPriService getNoneAdminPriService() {
		return noneAdminPriService;
	}

	public void setNoneAdminPriService(INoneAdminPriService noneAdminPriService) {
		this.noneAdminPriService = noneAdminPriService;
	}

	public IDBFirstSortDAO getDbfirstsortDAO() {
		return dbfirstsortDAO;
	}

	public void setDbfirstsortDAO(IDBFirstSortDAO dbfirstsortDAO) {
		this.dbfirstsortDAO = dbfirstsortDAO;
	}

	public IDBSortDAO getDbsortDAO() {
		return dbsortDAO;
	}

	public void setDbsortDAO(IDBSortDAO dbsortDAO) {
		this.dbsortDAO = dbsortDAO;
	}

	public ITIndexadminDAO getIndexadminDAO() {
		return indexadminDAO;
	}

	public void setIndexadminDAO(ITIndexadminDAO indexadminDAO) {
		this.indexadminDAO = indexadminDAO;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -