Friday 16 August 2013

Spring MVC Interceptor


application-context.xml

   
       
       
    
    
AuthTokenInterceptor.java
package com.interceptor;

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

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
public class AuthTokenInterceptor implements HandlerInterceptor  {
 
 Logger logger = Logger.getLogger(AuthTokenInterceptor.class);
 
  @Autowired
  private ServletContext servletContext;
  
    @Override
    public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
     try
        {System.out.println("Inside Interceptor");
            HttpSession session = request.getSession();
            String authToken = (String) session.getAttribute("authToken");
            logger.info("Interceptor invoked For Auth token");
            if(authToken==null || authToken.equals(""))
            {
             logger.debug("Auth Token time Out");
             response.sendRedirect(servletContext.getContextPath()+"/logout");
                return false;
            }
            else
            {
             return true;
            }
        }catch(Exception ex)
        {
         ex.getMessage();
         response.sendRedirect(servletContext.getContextPath()+"/logout");
            return false;
        }
    }
   
    @Override
    public void postHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
    }
     
    @Override
    public void afterCompletion(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
    }
}

1 comments:

  1. Nice Article. can also be used in java configuration with
    @Configuration. Find the code snippet.

    @Configuration
    public class AppConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new LoggingInterceptor());
    registry.addInterceptor(new TransactionInterceptor()).addPathPatterns("/person/save/*");
    }
    }

    Find the detail.

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...