Rev 507 | Blame | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import in.shop2020.serving.services.UserSessionInfo;import in.shop2020.serving.utils.Utils;import java.util.Map;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.juli.logging.Log;import org.apache.juli.logging.LogFactory;import org.apache.struts2.interceptor.CookiesAware;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;/*** Base class for all user action handlers i.e. controllers** @author rajveer**/public abstract class BaseController implements CookiesAware, ServletResponseAware, ServletRequestAware {private Map cookiesMap;protected HttpServletResponse response;protected HttpServletRequest request;protected HttpSession session;UserSessionInfo userinfo = null;Cookie tempCookie = null;private static Log log = LogFactory.getLog(BaseController.class);public BaseController() {}public Map getCookiesMap() {return cookiesMap;}@Overridepublic void setCookiesMap(Map cookiesMap) {this.cookiesMap = cookiesMap;}@Overridepublic void setServletResponse(HttpServletResponse response){this.response = response;if(tempCookie != null){this.response.addCookie(tempCookie);}}@Overridepublic void setServletRequest(HttpServletRequest request){this.request = request;this.session = request.getSession();setUserSessionInfo();}public void removeUserSessionInfo(){if(this.session.getAttribute("userinfo") != null ){this.session.removeAttribute("userinfo");}}public void setUserSessionInfo(){if(this.session.getAttribute("userinfo") != null ){userinfo = (UserSessionInfo) this.session.getAttribute("userinfo");}else{processCookiesInfo();//userinfo = new UserSessionInfo();}this.session.setAttribute("userinfo",userinfo);}public void processCookiesInfo(){Cookie[] cookies = this.request.getCookies();boolean foundUserIdCookie = false;boolean foundSessionIdCookie = false;long userId = 0 ;long sessionId = 0;if(cookies != null){for(int loopIndex = 0; loopIndex < cookies.length; loopIndex++) {Cookie cookie1 = cookies[loopIndex];if (cookie1.getName().equals("userid")) {System.out.println("User Id is = " + cookie1.getValue());userId = Long.parseLong(cookie1.getValue());foundUserIdCookie = true;}if (cookie1.getName().equals("sessionid")) {System.out.println("Session Id is = " + cookie1.getValue());sessionId = Long.parseLong(cookie1.getValue());foundSessionIdCookie = true;}}}if(foundUserIdCookie){if(Utils.isUserLoggedIn(userId)){userinfo = new UserSessionInfo(userId, false);}else{if(foundSessionIdCookie){userinfo = new UserSessionInfo(sessionId, true);}else{userinfo = new UserSessionInfo();for(int loopIndex = 0; loopIndex < cookies.length; loopIndex++) {Cookie cookie1 = cookies[loopIndex];if (cookie1.getName().equals("userid")) {cookie1.setMaxAge(0);//cookie1.setPath(cookie1.getPath());//cookie1.setDomain(cookie1.getDomain());tempCookie = cookie1;}}}}}else{if(foundSessionIdCookie){userinfo = new UserSessionInfo(sessionId, true);}else{userinfo = new UserSessionInfo();Cookie cookie1 = new Cookie("sessionid", userinfo.getSessionId()+"");tempCookie = cookie1;}}}public String getEmail(){return userinfo.getEmail();}public String getNameOfUser(){return userinfo.getNameOfUser();}}