Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package in.shop2020.serving.interceptors;

import in.shop2020.serving.services.UserSessionInfo;

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

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginInterceptor extends AbstractInterceptor {


        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private static Logger log = Logger.getLogger(Class.class);
        
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
                HttpServletRequest request = ServletActionContext.getRequest();
                HttpServletResponse response = ServletActionContext.getResponse();
        
        UserSessionInfo userInfo = (UserSessionInfo) request.getAttribute(UserInterceptor.USER_INFO_COOKIE_NAME);
        if(userInfo == null || !userInfo.isLoggedIn()){
                response.sendRedirect("/login?redirectUrl=" + getRedirectUrl(request));
                return null;
        }
                return invocation.invoke();
        }
        
        public String getRedirectUrl(HttpServletRequest request) {
                String queryString = request.getQueryString();
                if (queryString == null) {
                        queryString = "";
                } else {
                        queryString = "?" + queryString;
                }
                log.info("Redirect Url : " + request.getRequestURI() + queryString);
                return request.getRequestURI() + queryString;
        }
}