2013년 9월 9일 월요일

Session 관리 2

다른 버전도 올리자 이전 소스에서는 restful 형식의 url에 촛점을 맞추느라 일반화가 안되어있다. 그래서 그냥 초기화면으로 돌아가게 하는 식으로 만들어봤다.
package com.jetddo.study.interceptor;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

@Component
public class SessionInterceptor implements HandlerInterceptor {
 
 private static final Logger logger = LoggerFactory.getLogger(SessionInterceptor.class);

 
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, 
     Object handler) throws Exception {
  
  HttpSession session = request.getSession(false);
  
  if(session != null && session.getAttribute("SPRING_SECURITY_CONTEXT") != null
          && session.getAttribute("sessionVo") == null){   
      
   session.invalidate();
        
   logger.info("[sessionVo] has EXPIRED !!!");
   
   response.sendRedirect(request.getContextPath());
      
   return false;   
  }
    
  return true;
 }
 
   
 public void postHandle(HttpServletRequest request, HttpServletResponse response, 
     Object handler, ModelAndView modelAndView) throws Exception {

 }

 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, 
     Object handler, Exception ex) throws Exception {

 }
}

댓글 없음:

댓글 쓰기