Subversion Repositories SmartDukaan

Rev

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