spring boot Interceptor 설정

spring boot Interceptor 설정 하는 방법 입니다.

생각 보다 간단 하네요.



우선 WebMvcConfig.java



package com.kr.spot.system;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

/** * Created by ian on 2017. 7. 12.. */
@Configuration@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
   
   @Override   
   public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
      configurer.enable();   }

   @Bean   
   public InternalResourceViewResolver viewResolver() {
      InternalResourceViewResolver resolver = new InternalResourceViewResolver();      
      resolver.setPrefix("views/");      
      resolver.setSuffix(".jsp");      
      return resolver;   
   }

   /* 로그인 인증 Interceptor 설정 */   
   @Autowired   
   private com.kr.spot.system.LoginInterceptor loginInterceptor;   
   /* 캐시 Interceptor 설정 */   
   @Autowired    
   private com.kr.spot.system.CachingInterceptor cachingInterceptor;   
   /* 기본 Interceptor 설정 */   
   @Autowired   
   private com.kr.spot.system.BaseInterceptor baseInterceptor;
   
   @Override   
   public void addInterceptors(InterceptorRegistry registry) {
      registry.addInterceptor(loginInterceptor)
            .addPathPatterns("/**")
            .excludePathPatterns("/CO0301/**");

      registry.addInterceptor(cachingInterceptor)
            .addPathPatterns("/**")
            .excludePathPatterns("/CO0301/**");

      registry.addInterceptor(baseInterceptor)
            .addPathPatterns("/**");   
   }

}




addPathPatterns 는 Interceptor 가 실행 되어야할 페이지 규칙

excludePathPatterns 는 Interceptor 가 실행 제외되어야할 페이지 규칙 입니다.



다음은 LoginInterceptor.java 입니다.



package com.kr.spot.system;

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;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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

   @Override   
   public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
      //로그인 정보 확인 및 처리            
      //1. 세션 정보 확인       
      if(request.getSession().getAttribute("sEmpNo") == null){
         // 로그인 페이지 이동          
         logger.info( "go login page");         
         response.sendRedirect("/CO0301");      
      }
      
      return true;   
   }

   @Override   public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,                          
                                      ModelAndView modelAndView) throws Exception {
      // TODO Auto-generated method stub   
   }

   @Override   public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
         throws Exception {
      // TODO Auto-generated method stub   }

   }


이렇게 하시면 됩니다.

크게 어려울건 없네요.



spring boot 설정 하면서 이게 제일 쉬운거 같네여 ㅜㅜ

















댓글 없음:

댓글 쓰기

새로운 취미생활 RC TRX-6, UDR 영정사진들

서울에 살때는 RC카를 하고 싶어도 장소가 없어서 선뜻 시작이 어려웠다. 교외로 나가자면 차를 갖고 가야하고 최소 1시간은 나가야 할듯했다. 매번 이러다 보면 그횟수가 점점 줄어들어 포기 할까봐 시작하지 않았다. 하지만 전주로 이사와서 친구 한명...