[Spring] Interceptor를 사용하여 페이지 허점 잡기(로그아웃 시에도 마이페이지 접속됨)

2022. 11. 29. 11:25·📗 self-study/📗 KH정보교육원 당산지원

 

 

📌 현재 상황

👉🏻 로그인하지 않았음에도 localhost:8006/spring/myPage.me 접속 시 마이페이지가 뜸

 

 

 

 

📖 Controlelr 실행 전/후의 요청을 낚아채는 Interceptor

 

 

 

💻 LoginInterceptor 클래스 생성

👉🏻 interceptor의 패키지 구조 하나 더 생성 후 만들 것!

👉🏻 HttpSession을 통해 loginUser가 있을 때만 접속 가능하게 만들 수도 있음

👉🏻 스프링 방식 적용도 가능함!

package com.kh.spring.common.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class LoginInterceptor extends HandlerInterceptorAdapter {

	// 선처리용 preHandle 메소드 오버라이딩
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		
		// 로그인 유무 검사를 위한 Session 객체 얻어내기
		HttpSession session = request.getSession();
		
		// loginUser 키값이 있나 검사
		if(session.getAttribute("loginUser") != null) {
			// 현재 요청을 보낸 사람이 로그인되어 있는 상태라면
			// => Controller가 실행
			return true;
		} else {
			// 현재 요청을 보낸 사람이 로그인이 되어 있지 않은 상태라면
			// => Controller 실행 막기
			
			// alertMsg로 "로그인 한 회원만 이용 가능하다"는 알람 메시지 띄우기
			session.setAttribute("alertMsg", "로그인 후 이용 가능한 서비스입니다.");
			
			// 응답 뷰 지정(메인페이지로 url 재요청)
			response.sendRedirect(request.getContextPath());
			
			return false;
		}
		
	}
	
}

 

💻 Servlet-context.xml

	<interceptors>
		<interceptor>
			<mapping path="/myPage.me" />
			<mapping path="/enrollForm.bo" />
			<mapping path="/update.me" />
			<beans:bean class="com.kh.spring.common.interceptor.LoginInterceptor" id="loginInterceptor" />
		</interceptor>
	</interceptors>

 

 

 

📌 현재 상황

👉🏻 로그인하지 않았을 때 localhost:8006/spring/myPage.me 접속 시 로그인 후 이용 가능한 서비스라는 alert창이 뜸

저작자표시 비영리 변경금지 (새창열림)
'📗 self-study/📗 KH정보교육원 당산지원' 카테고리의 다른 글
  • [Spring] Spring의 추가적인 기능 알아보기 - JUnit
  • [Spring] EL구문을 활용 - 아이디 저장 쿠키
  • [Spring] Controller 실행 전/후의 요청을 낚아채는 Interceptor
  • [11/28] 별점 구현 화면 만들기
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[Spring] Interceptor를 사용하여 페이지 허점 잡기(로그아웃 시에도 마이페이지 접속됨)
상단으로

티스토리툴바