-
InterceptorJava/Spring 2018. 8. 24. 16:29반응형
/board 이하의 모든 URL들에 대해 인증된 회원만 접근하고자할때,
Filter 기능을 사용해서 Session 인증 처리를 할수 있지만, Spring Bean 주입 받을 필요가 있을 경우 Interceptor를 이용한다.
Adapter에서 Controller로 보낼때, -> preHandle
Controller에서 Adapter로 받을 때 -> PostHandle
JSP가 Return되려 할때 -> AfterComplet
주로 Interceptor는 preHandle에서 쓰인다. -> Session검증, 정보 검증
Interceptor는 bool 로 되있다.
return 값이 true면 진행하고 false면 진행하지 않는다. 일종의 검문소와 같다고 볼 수 있다.
SessionInterceptor라는 HandlerInterceptorAdapter 클래스를 상속 받는 클래스를 작성한다.
package com.ktds.common;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import com.ktds.member.vo.MemberVO;public class SessionInterceptor extends HandlerInterceptorAdapter { // Interceptor 사용@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) // handler == Controllerthrows Exception {HttpSession session = request.getSession();MemberVO member = (MemberVO) session.getAttribute("_USER_");if ( member == null ) { // session이 없을 시response.sendRedirect("/HelloSpring/member/login"); // login Page로 이동return false;}return true;}}applicationContext.xml에서도 Interceptor Bean을 생성한다.
<mvc:interceptors><mvc:interceptor><mvc:mapping path="/board/**/"/> <!-- /board 아래 모든 url --><bean id="sessionInterceptor"class="com.ktds.common.SessionInterceptor"></bean></mvc:interceptor></mvc:interceptors>mvc:excludemapping을 이용하면 설정된 path는 예외로 구분된다.
반응형'Java > Spring' 카테고리의 다른 글
Logging (0) 2018.08.27 Static Resources (0) 2018.08.24 bean config 설정 분리 (0) 2018.08.24 Application 예외 처리 (0) 2018.08.24 File - Upload / Download (0) 2018.08.23 댓글