interceptor 패키지에
[ LoginCheckInterceptor ] 클래스 만들기
public class LoginCheckInterceptor implements HandlerInterceptor {
/* preHandle 메소드 : 컨트롤러에 가기 전 Interceptor에서 캐치해서 작업 수행 */
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request.getSession(); //세션 불러오기
User user = (User) session.getAttribute("user");
if(user == null) {
//인증이 안된 상태 => 로그인 화면으로 이동
String url = session.getServletContext().getContextPath() + "/login";
response.sendRedirect(url); //리다이렉트 요청 로그인
System.out.println("LoginInterceptor # preHandle() : 로그인 안됨");
return false;
}
// 인터셉터 메소드에서 리턴이 true면 통과 false면 차단
System.out.println("LoginInterceptor # preHandle() : 통과됨");
return true;
}
}
인터셉터 등록
main 패키지에 [ WebConfig 클래스 ]
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 인터셉터를 추가하는 메소드
registry
.addInterceptor(new LoginCheckInterceptor())
.addPathPatterns("/board/**") //인터셉터를 적용할 컨트롤러주소
.excludePathPatterns("/board/list", "/board/get"); //적용 안할 주소
}
}
반응형
LIST
'Spring boot | 쇼핑몰 만들기 | 어글리 마켓 > 홈페이지 만들기 | 고객,관리자' 카테고리의 다른 글
인터셉터로 user 로그인 만들기 (0) | 2022.06.15 |
---|---|
인터셉터로 user 가입하기 만들기 (0) | 2022.06.15 |
Spring MVC 구조 (0) | 2022.06.15 |
[레시피] 댓글 삭제 delete (0) | 2022.06.15 |
[레시피] 댓글 수정 기능 put (0) | 2022.06.13 |