스프링 인터셉터
스프링 MVC 2 - 스프링 인터셉터 - 인증 체크
스프링 MVC 2 - 스프링 인터셉터 - 인증 체크
2022.09.23스프링 인터셉터 - 인증 체크 서블릿필터에서 사용했던 인증 체크 기능을 스프링 인터셉터로 개발해보자. LoginCheckInterceptor 서블릿 필터와 비교해서 코드가 매우 간결하다. 인증이라는 것은 컨트롤러 호출 전에만 호출하면 된다. 따라서 preHandle만 구현하면 된다. 순서 주의, 세밀한 설정 가능) 인터셉터와 필터가 중복되지 않도록 필터를 등록하기 위한 logFilter(), loginCheckFilter()의 @Bean은 주석처리하자. 인터셉터를 적용하거나 하지 않을 부분은 addPathPatterns와 excludePathPatterns에 작성하면 된다. 기본적으로 모든 경로에 해당 인터셉터를 적용하되(/**), 홈(/), 회원가입(/members/add), 로그인(/login), 리..
스프링 MVC 2 - 스프링 인터셉터 - 요청 로그
스프링 MVC 2 - 스프링 인터셉터 - 요청 로그
2022.09.23스프링 인터셉터 - 요청 로그 LogInterceptor - 요청 로그 인터셉터 String uuid = UUID.randomUUID().toString() 요청 로그를 구분하기 위한 uuid를 생성한다. request.setAttribute(LOG_ID, uuid) 서블릿 필터의 경우 지역변수로 해결이 가능하지만, 스프링 인터셉터는 호출 시점이 완전히 분리되어 있다. 따라서 preHandle에서 지정한 값을 postHandle, afterCompletion에서 함께 사용하려면 어딘가에 담아두어야 한다. LogInterceptor도 싱글톤 처럼 사용되기 때문에 멤버 변수를 사용하면 위험하다. 따라서 request에 담아두었다. 이 값은 afterCompletion에서 request.getAttribute..