
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
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.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;
import java.io.IOException;
/**
* @author takensoft
* @since 2025.01.22
* @modification
* since | author | description
* 2025.01.22 | takensoft | 최초 등록
*
* AuthenticationEntryPoint - 인증되지 않은 사용자의 요청을 처리하는 인터페이스
*
* 인증되지 않은 사용자의 요청을 처리하는 클래스
*/
@Component
@Slf4j
@RequiredArgsConstructor
public class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint {
/**
* @param req - HTTP 요청 객체
* @param res - HTTP 응답 객체
* @param ae - 인증 예외
* @throws IOException - 입출력 예외 발생 시
* @throws ServletException - 서블릿 예외 발생 시
*
* 인증되지 않은 사용자가 요청을 보냈을 때 실행
*/
@Override
public void commence(HttpServletRequest req, HttpServletResponse res, AuthenticationException ae) throws IOException, ServletException {
log.info("Requester IP: {}", req.getRemoteAddr()); // 요청자의 IP 주소 로그 출력
log.info("Request URI: {}", req.getRequestURI()); // 요청 URI 로그 출력
FilterExceptionHandler.authenticationEntryPoint(res, ae);
}
}