-
Notifications
You must be signed in to change notification settings - Fork 573
Expand file tree
/
Copy pathAdminCheckInterceptor.java
More file actions
36 lines (26 loc) · 1.1 KB
/
AdminCheckInterceptor.java
File metadata and controls
36 lines (26 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package org.example.expert.config;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.example.expert.domain.common.exception.InvalidRequestException;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import java.time.LocalDateTime;
@Slf4j
@Component
public class AdminCheckInterceptor implements HandlerInterceptor {
@Override
// 역할 가져오기
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object Role = request.getAttribute("userRole");
// 역할이랑 일치하는지 확인
if (Role == null || !"Admin".equals(Role.toString())) {
throw new InvalidRequestException(" 어드민 권한이 필요합니다.");
}
//로깅 인포 추가!
log.info("인증된 관리자 접근, Time:{}, URL:{}",
LocalDateTime.now(), request.getRequestURL());
// 특이사항 없으면 true
return true;
}
}