package com.takensoft.common.exception; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.web.access.AccessDeniedHandler; import org.springframework.stereotype.Component; import java.io.IOException; /** * @author takensoft * @since 2025.01.22 * @modification * since | author | description * 2025.01.22 | takensoft | 최초 등록 * * AccessDeniedHandler - 접근이 거부된 사용자의 요청을 처리하는 클래스 * * 접근이 거부된 사용자의 요청을 처리하고, 필요한 에러 응답을 반환하는 역할을 하는 클래스 */ @Component @Slf4j @RequiredArgsConstructor public class CustomAccessDenieHandler implements AccessDeniedHandler { /** * @param req - HTTP 요청 객체 * @param res - HTTP 응답 객체 * @param ade - 접근 거부 예외 * @throws IOException - 입출력 예외 발생 시 * @throws ServletException - 서블릿 예외 발생 시 * * 접근이 거부된 사용자가 요청을 보냈을 때 실행 */ @Override public void handle(HttpServletRequest req, HttpServletResponse res, AccessDeniedException ade) throws IOException, ServletException { FilterExceptionHandler.accesDenie(res, ade); } }