Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
317 ashish 1
/**
2
 * 
3
 */
4
 
5
 
6
package in.shop2020.serving.controllers;
410 rajveer 7
 
419 rajveer 8
import in.shop2020.serving.services.UserSessionInfo;
9
import in.shop2020.serving.utils.Utils;
416 rajveer 10
 
410 rajveer 11
import java.util.Map;
12
 
416 rajveer 13
import javax.servlet.http.Cookie;
14
import javax.servlet.http.HttpServletRequest;
410 rajveer 15
import javax.servlet.http.HttpServletResponse;
416 rajveer 16
import javax.servlet.http.HttpSession;
410 rajveer 17
 
416 rajveer 18
import org.apache.juli.logging.Log;
19
import org.apache.juli.logging.LogFactory;
410 rajveer 20
import org.apache.struts2.interceptor.CookiesAware;
416 rajveer 21
import org.apache.struts2.interceptor.ServletRequestAware;
410 rajveer 22
import org.apache.struts2.interceptor.ServletResponseAware;
23
 
317 ashish 24
/**
25
 * Base class for all user action handlers i.e. controllers
26
 * 
545 rajveer 27
 * @author rajveer
317 ashish 28
 *
29
 */
416 rajveer 30
public abstract class BaseController implements  CookiesAware, ServletResponseAware, ServletRequestAware {
410 rajveer 31
	private Map cookiesMap;
416 rajveer 32
    protected HttpServletResponse response;
33
    protected HttpServletRequest request;
34
    protected HttpSession session;
419 rajveer 35
 
36
    UserSessionInfo userinfo = null;
37
 
416 rajveer 38
    Cookie tempCookie = null;
39
 
40
	private static Log log = LogFactory.getLog(BaseController.class);
41
 
42
	public BaseController() {
43
	}
545 rajveer 44
 
410 rajveer 45
	public Map getCookiesMap() {
46
		return cookiesMap;
47
	}
48
 
49
	@Override
50
	public void setCookiesMap(Map cookiesMap) {
51
		this.cookiesMap = cookiesMap;
52
	}
53
 
54
	@Override
55
	public void setServletResponse(HttpServletResponse response)
56
	{
57
		this.response = response;
416 rajveer 58
		if(tempCookie != null){
59
			this.response.addCookie(tempCookie);
60
		}
410 rajveer 61
	}
416 rajveer 62
 
63
	@Override
64
	public void setServletRequest(HttpServletRequest request){
65
		this.request = request;
66
		this.session = request.getSession();
419 rajveer 67
		setUserSessionInfo();
68
	}
69
 
70
	public void removeUserSessionInfo(){
71
		if(this.session.getAttribute("userinfo") != null ){
72
			this.session.removeAttribute("userinfo");
73
		}
74
	}
75
 
76
 
77
	public void setUserSessionInfo(){
78
		if(this.session.getAttribute("userinfo") != null ){
79
			userinfo = (UserSessionInfo) this.session.getAttribute("userinfo");
80
		}else{
81
			processCookiesInfo();
82
			//userinfo = new UserSessionInfo();
83
		}
84
		this.session.setAttribute("userinfo",userinfo);
85
	}
86
 
87
	public void processCookiesInfo(){
88
		Cookie[] cookies = this.request.getCookies();
89
		boolean foundUserIdCookie = false;
90
		boolean foundSessionIdCookie = false;
91
		long userId = 0 ;
92
		long sessionId = 0;
416 rajveer 93
 
419 rajveer 94
		if(cookies != null){
95
		    for(int loopIndex = 0; loopIndex < cookies.length; loopIndex++) { 
96
		        Cookie cookie1 = cookies[loopIndex];
97
		        if (cookie1.getName().equals("userid")) {
98
		            System.out.println("User Id is = " + cookie1.getValue());
99
		            userId = Long.parseLong(cookie1.getValue());
100
		            foundUserIdCookie = true;
101
		        }
102
		        if (cookie1.getName().equals("sessionid")) {
103
		            System.out.println("Session Id is = " + cookie1.getValue());
104
		            sessionId = Long.parseLong(cookie1.getValue());
105
		            foundSessionIdCookie = true;
106
		        }
107
	    	}
108
		}
109
 
110
		if(foundUserIdCookie){
111
			if(Utils.isUserLoggedIn(userId)){
112
				userinfo = new UserSessionInfo(userId, false);
507 rajveer 113
 
419 rajveer 114
			}
115
			else{
116
				if(foundSessionIdCookie){
117
					userinfo = new UserSessionInfo(sessionId, true);	
118
				}else{
119
					userinfo = new UserSessionInfo();
120
				    for(int loopIndex = 0; loopIndex < cookies.length; loopIndex++) { 
121
				        Cookie cookie1 = cookies[loopIndex];
122
				        if (cookie1.getName().equals("userid")) {
123
				        	cookie1.setMaxAge(0);
124
				        	//cookie1.setPath(cookie1.getPath());
125
							//cookie1.setDomain(cookie1.getDomain());
126
				        	tempCookie = cookie1;
127
				        }
128
					}
129
				}
130
			}
131
		}			
132
		else{  
133
			if(foundSessionIdCookie){
134
				userinfo = new UserSessionInfo(sessionId, true);			
135
			}
136
			else{
137
				userinfo = new UserSessionInfo();
138
				Cookie cookie1 = new Cookie("sessionid", userinfo.getSessionId()+"");
139
		    	tempCookie = cookie1;
140
			}
141
		}
416 rajveer 142
	}
419 rajveer 143
 
424 rajveer 144
	public String getEmail(){
145
		return userinfo.getEmail();
146
	}
419 rajveer 147
 
424 rajveer 148
	public String getNameOfUser(){
149
		return userinfo.getNameOfUser();
150
	}
151
 
152
}
416 rajveer 153
 
419 rajveer 154