/**
*
*/
package sample;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.util.WebUtils;
import util.ApplicationConfigReader;
import util.UserSession;
/**
* @author 9791714
*
*/
public class LogonInterceptor implements HandlerInterceptor {
private static final Logger logger = LoggerFactory.getLogger(LogonInterceptor.class);
/**
* Controller 가 수행되기 전에 호출됩니다.
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
logger.debug("LogonInterceptor start");
//세션정보를 확인한다.
UserSession userSession = (UserSession) WebUtils.getSessionAttribute(request, "userSession");
//세션정보를 확인해서 null일 경우, 로그인 페이지로 이동
if (userSession == null) {
String redirectUrl = ApplicationConfigReader.get("webAppRoot") + "/loginForm";
response.sendRedirect(redirectUrl);
return false;
}
logger.debug("LogonInterceptor end");
return true;
}
/**
* Controller의 메소드가 수행이 완료되고, View 를 호출하기 전에 호출됩니다.
*/
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws Exception {
// Nothing to do
}
/**
* View 작업까지 완료된 후 Client에 응답하기 바로 전에 호출됩니다.
*/
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response,
Object handler,
Exception ex) throws Exception {
if(logger.isDebugEnabled()) {
logger.debug("logonInterceptor를 종료합니다.");
}
}
}
설정 파일에 Interceptor 설정
<mvc:interceptors>
<bean class="sample.LogonInterceptor"/>
</mvc:interceptors>
댓글 없음:
댓글 쓰기