Subversion Repositories SmartDukaan

Rev

Rev 23784 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.interceptor;

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

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
import com.spice.profitmandi.service.authentication.RoleManager;
import com.spice.profitmandi.web.model.LoginDetails;
import com.spice.profitmandi.web.util.CookiesProcessor;

@Component
public class RoleInterceptor implements HandlerInterceptor {
        
        @Autowired
        private RoleManager roleManager;

        private static final Logger LOGGER = LogManager.getLogger(RoleInterceptor.class);
        
        @Autowired
        private CookiesProcessor cookiesProcessor;
        
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3)
                        throws Exception {
        }

        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object arg2, ModelAndView arg3)
                        throws Exception {
                LOGGER.info("request is received after : "+request.getRequestURL().toString());
        }

        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
                LOGGER.info("request is received before uri [{}], method [{}]", request.getRequestURI(), request.getMethod());
                LoginDetails loginDetails = null;
                try {
                        loginDetails = cookiesProcessor.getCookiesObject(request);
                } catch (ProfitMandiBusinessException e) {
                        LOGGER.error("Requested session is expired", e);
                        throw e;
                }
                return roleManager.isAuthorizedURI(loginDetails.getRoleIds(), request.getContextPath(), request.getRequestURI(), request.getMethod());
        }
        
        
}