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 설정 하면서 이게 제일 쉬운거 같네여 ㅜㅜ
피드 구독하기:
댓글 (Atom)
새로운 취미생활 RC TRX-6, UDR 영정사진들
서울에 살때는 RC카를 하고 싶어도 장소가 없어서 선뜻 시작이 어려웠다. 교외로 나가자면 차를 갖고 가야하고 최소 1시간은 나가야 할듯했다. 매번 이러다 보면 그횟수가 점점 줄어들어 포기 할까봐 시작하지 않았다. 하지만 전주로 이사와서 친구 한명...

-
특정 element 의 display 속성이 none 인지 아닌지 판단 할때 아래와 같이 사용 하면 쉽다. $('#myDiv').is(':visible'); display: none 일때는 false 를 반환...
-
jquery 로 클릭 이벤트 처리를 위해서 보통은 아래와 같은 방법으로 처리 한다. $(".trashCan").click(function(){ console.log("ddddd"); }); ...
-
* 부모 페이지 폼 html <form name="fnForm" id="fnForm" method="post" target="popup_window"> ...
댓글 없음:
댓글 쓰기