Subversion Repositories SmartDukaan

Rev

Rev 9570 | Rev 9612 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9269 amit.gupta 1
package in.shop2020.mobileapi.serving.controllers;
9103 anupam.sin 2
 
9269 amit.gupta 3
import in.shop2020.mobileapi.serving.interceptors.TrackingInterceptor;
4
import in.shop2020.mobileapi.serving.interceptors.UserAware;
5
import in.shop2020.mobileapi.serving.interceptors.UserInterceptor;
6
import in.shop2020.mobileapi.serving.services.PageLoaderHandler;
7
import in.shop2020.mobileapi.serving.services.UserSessionInfo;
8
import in.shop2020.mobileapi.serving.utils.DesEncrypter;
9103 anupam.sin 9
import in.shop2020.model.v1.catalog.Banner;
10
import in.shop2020.model.v1.catalog.BannerMap;
11
 
12
import java.util.ArrayList;
13
import java.util.HashMap;
14
import java.util.List;
15
import java.util.Map;
16
 
17
import javax.servlet.http.Cookie;
18
import javax.servlet.http.HttpServletRequest;
19
import javax.servlet.http.HttpServletResponse;
20
import javax.servlet.http.HttpSession;
21
 
22
import org.apache.log4j.Logger;
23
import org.apache.struts2.interceptor.ServletRequestAware;
24
import org.apache.struts2.interceptor.ServletResponseAware;
25
 
26
import com.opensymphony.xwork2.ValidationAwareSupport;
27
 
28
/**
29
 * Base class for all user action handlers i.e. controllers
30
 * 
31
 * @author rajveer
32
 */
33
public abstract class BaseController extends ValidationAwareSupport implements
9601 amit.gupta 34
ServletResponseAware, ServletRequestAware, UserAware {
9103 anupam.sin 35
	/**
36
	 * 
37
	 */
38
	private static final long serialVersionUID = 1L;
39
	protected Map<String, Cookie> cookiesMap = null;
40
	protected HttpServletResponse response;
41
	protected HttpServletRequest request;
42
	protected HttpSession session;
43
	protected String domainName;
44
	protected UserSessionInfo userinfo = null;
45
	private static Logger log = Logger.getLogger(Class.class);
46
	private DesEncrypter desEncrypter = new DesEncrypter(UserInterceptor.COOKIE_DECRYPTION_STRING);
47
 
48
	protected Cookie userCookie = null;
49
 
50
	protected Map<String, String> htmlSnippets;
51
 
52
	PageLoaderHandler pageLoader = null;
53
 
54
	public static Map<String,List<Banner>> activeBanners = null;
55
	public static Map<String, List<BannerMap>> allBannersMap = null;
56
 
9157 amit.gupta 57
 
9103 anupam.sin 58
 
59
	public List<BannerMap> getbannermapdetails(String bannerName) {
60
		return allBannersMap.get(bannerName);
61
	}
62
 
63
 
64
	public BaseController() {
65
		pageLoader = new PageLoaderHandler();
66
		htmlSnippets = new HashMap<String, String>();
67
	}
68
 
69
	@Override
70
	public void setCookiesMap(Map<String, Cookie> cookiesMap) {
71
		log.info("Received cookiesMap.");
72
		this.cookiesMap = cookiesMap;
73
	}
74
 
75
	@Override
76
	public void setServletResponse(HttpServletResponse response) {
77
		this.response = response;
78
	}
79
 
80
	@Override
81
	public void setServletRequest(HttpServletRequest request) {
82
		this.request = request;
83
	}
84
 
85
	@Override
86
	public void setSession(HttpSession session) {
87
		this.session = session;
88
	}
89
 
90
	@Override
91
	public void setUserSessionInfo(UserSessionInfo userInfo) {
92
		this.userinfo = userInfo;
93
	}
94
 
95
	@Override
96
	public void setUserCookie(Cookie userCookie) {
97
		if(userCookie != null){
98
			log.info("cookie name is:" +  userCookie.getName() + "   value is:"+ userCookie.getValue() + " path : " + userCookie.getPath());
99
		}
100
		this.userCookie = userCookie;
101
	}
102
 
103
	@Override
104
	public void setCookieDomainName(String domainName) {
105
		this.domainName = domainName;
106
	}
107
 
108
	public UserSessionInfo getUserInfo(){
109
		return this.userinfo;
110
	}
111
 
112
	@Override
113
	public List<Cookie> getCookies() {
114
		List<Cookie> cookies = new ArrayList<Cookie>();
115
		return cookies;
116
	}
117
 
118
	public void clearUserCookies(){
119
		Cookie uidCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
120
		uidCookie.setDomain(domainName);
121
		uidCookie.setPath("/");
122
		uidCookie.setValue("");
123
		uidCookie.setMaxAge(0);
124
		this.response.addCookie(uidCookie);
125
 
126
		Cookie uicCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME);
127
		uicCookie.setDomain(domainName);
128
		uicCookie.setPath("/");
129
		uicCookie.setValue("");
130
		uicCookie.setMaxAge(0);
131
		this.response.addCookie(uicCookie);
132
	}
133
 
134
	/**
135
	 * Get the session_id cookie to track user session.
136
	 * It also creates the new cookie using current jsessionid if it was absent. 
137
	 * 
138
	 * @return sessionId
139
	 */
140
	public String getSessionId() {
141
		Cookie sessionIdCookie = cookiesMap.get(TrackingInterceptor.SESSION_ID_COOKIE);
142
		if (sessionIdCookie == null) {
143
			//session id
144
			String sessionId = request.getSession().getId();
145
			sessionIdCookie = new Cookie(TrackingInterceptor.SESSION_ID_COOKIE, sessionId);
146
			sessionIdCookie.setPath("/");
147
			if (!domainName.isEmpty()) {
148
				sessionIdCookie.setDomain(domainName);
149
			}
150
			cookiesMap.put(TrackingInterceptor.SESSION_ID_COOKIE, sessionIdCookie);
151
			response.addCookie(sessionIdCookie);
152
		}
153
		return sessionIdCookie.getValue();
154
	}
155
 
156
	public String getCookie(String cookieName, boolean isEncripted, String encriptionString) {
157
		Cookie cookie = (Cookie) cookiesMap.get(cookieName);
158
		String cookieVal = null;
159
		if (cookie != null) {
160
			cookieVal = cookie.getValue();
161
			if (isEncripted) {
162
				DesEncrypter desEncrypter = new DesEncrypter(encriptionString);
163
				cookieVal = desEncrypter.decrypt(cookieVal);
164
			}
165
		}
166
		return cookieVal;
167
	}
168
}