로그인을 하지않은 사용자가 ,ㅇㅇ시도하면 로그인 할수있도록 로그인페이지로보여주기 ( 지금은 삭제시도 )

이렇게 하니 로그인한 사용자만 삭제가 되게끔 되었다. 그런데 회원정보 삭제는 했지만, 삭제된 사용자가 로그인되어있는 요상한 현상이 생겻다.
그래서, 삭제되고, 로그인한 세션도 제거되게끔 SessionStatus 정보를 받아 setComplicate()으로 세션정보를 제거하였다.

이렇게하니 삭제가 되면, 리스트페이지로 이동하면서 로그아웃 처리되었다.
방금처리한게게 로그인처리유무 를 작업하였는데,
이런작업들을 모든 버튼하나하나에 다 적용을 시키자니 너무 많을 것이다.
그래서 인턴셉터처리가 필요하다.
인터셉터란 ?
공통으로 처리해야하는 기능이 필요하다.
공통관심 = AOP ( 비지니스로직 관련처리시 주로사용한다.
웹 관련처리시 필터 or 인터셉터를 사용한다.)
스프링에서는 interceptor를 통하여 로그, 로그인기록 등을 처리한다.
동작순서

필터는 스프링에서 제공 x
인터셉터는 스프링에서 제공 ( 다양하게 사용가능 )
인터셉터로 어떤처리가능한가?
요청시 응답시간 ?
요청시 어느IP에서 요청했는지 ?
비로그인 사용자 권한제한처리?
등등
1. interCepter 관련 .java 파일만들기

2. HandlerInterceptorAdapter 상속받기

3. overide/implements 메서드

preHandle : 컨트롤인입전 (컨트롤러 호출 전 호출되는 메서드(HandlerAdapter호출 전에))
postHandle : 컨트롤 처리후 ( /컨트롤러 실행후에 호출되는 메서드(HandlerAdapter호출 후에))
afterCompletion : 뷰가 렌더링된 후에 호출
체크하여추가


4. 상세 메서드 작성

5. 인터셉터 설정등록 (spring-config.xml)

6. 여기까지 진행시, 정말 로그인화면, 메인화면, 게시글 전체리스트를 제외한 페이지 진입하려하면,
로그인 페이지로 전환된다. 그러나 실제 로그인을 하려해도 로그인이 되지않는다.
로그인 맵핑과 메인홈화면에 ajax로 처리한 맵핑을 제외로 넣지 않아 다시 추가하였다.

<exclude-mapping path="/common/**"/> 공통파일 까지 예외가필요하다 ( css 등)
<exclude-mapping path="/images/**"/> 공통파일 까지 예외가필요하다 (이미지)
'스프링MVC' 카테고리의 다른 글
AOP ( 프록시패턴) (1) | 2023.01.25 |
---|---|
트랜잭션 ( Transaction)처리 (0) | 2023.01.24 |
스프링 백업한 프로젝트 import하기 ( ! 느낌표해결 ) (0) | 2023.01.24 |
json (0) | 2023.01.18 |
ajax (0) | 2023.01.18 |