위와 같이 관리자 전용 관리페이지를 띄울 시 로그인이 안되어있는데,
지금은 악의적으로 사용자가 주소창에 주소를 쳐서 들어올 수 있는 보안에 아주 취약한 사이트이다.
이걸 막아줘보자.
하지만, 관리자페이지에 연관되어있는 곳에마다 다 해주면 또 응집도가 떨어질 수 있으니, intercepter를 사용해서 해보자.
AuthoIntercepter 클래스
preHandle을 Override로 받아와주었다. preHandle은 특정 메소드가 실행되기 전에 가장 처음으로 호출해준다.
위와 같이 HttpSession을 이용해서 session 값을 요청받아왔고, MemberVO 객체에 loginInfo 데이터를 저장했다.
이후 조건문을 주어 페이지 이동처리를 하였다.
intercepterConfig 클래스
AuthoIntercepter는 preHandle이기 때문에 먼저 실행이 되므로, MenuIntercepter보다 먼저 실행이 된다.
하지만 만약 같은 Handle이라면 order를 사용해 순서를 줄 수 있다.
order(1)이 실행된 후 order(2)가 실행이 되게 순서를 정해줄 수도 있다.
단, ajax가 intercepter랑 동시에 실행되면 충돌가능성이 매우 높다.
@ResponseBody와 같이 Ajax가 실행되는 메소드는 intercepter를 제외하는게 맞다.
그래서 .excludePathPatterns("/admin/*Ajax"); 를 추가해줘서 Ajax가 실행되는 메소드에는 intercepter를 제외시켰다.
~~~ Ajax 경로로 오는 것을 막아버리겠다. 라는 뜻이다.
cate_manage.js
컨트롤 F를 눌러 찾아서, cate_manage.js 에서 경로로 줬던 곳에 모두 Ajax를 추가시켜버리자.
컨트롤 h 눌러 cate_manage.js 뿐만아니라 모두 찾아보자.
AdminController 컨트롤러
컨트롤러로 넘어와서 @ResponseBody가 실행되는 Ajax에 위에서 바꾼 것처럼 경로를 모두 Ajax를 넣어 추가해준다.
그러면 정상적으로 intercepterConfig에서 하고자했던 기능이 잘 실행되는 것을 볼 수 있다.
'✨ Back-end > Spring-Boot' 카테고리의 다른 글
[Spring] 쇼핑몰 - 18 상품 이미지 등록 MainImg 하드코딩 (0) | 2023.03.30 |
---|---|
[Spring] 쇼핑몰 - 17 상품 등록(INSERT) (0) | 2023.03.29 |
[Spring] 쇼핑몰 - 15 IntercepterConfig로 응집도▲ (0) | 2023.03.29 |
응집도를 높이는 기능 Intercepter 사용법. (0) | 2023.03.29 |
[Spring] 쇼핑몰 - 14 서브메뉴 클릭시 classappend 적용하기 (0) | 2023.03.29 |
댓글