▶ JwtAuthenticationEntryPoint 클래스
@Component
public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request,
HttpServletResponse response,
AuthenticationException authException) throws IOException {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
}
- @Component: 이 어노테이션은 Spring에 이 클래스를 Bean으로 등록하도록 한니다. Spring은 이 클래스를 자동으로 스캔하고, 애플리케이션의 다른 부분에서 의존성 주입을 통해 사용할 수 있게 된다.
- public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint: 이 클래스는 AuthenticationEntryPoint 인터페이스를 구현한다. AuthenticationEntryPoint는 인증되지 않은 사용자가 보호된 리소스에 접근하려 할 때 호출된다. JwtAuthenticationEntryPoint는 401 Unauthorized 응답을 설정하여 인증 필요를 클라이언트에 알리기 위해 사용된다.
- HttpServletRequest request: 클라이언트의 HTTP 요청 정보를 포함한다.
- HttpServletResponse response: 서버가 클라이언트에 응답을 보낼 때 사용하는 객체다.
- AuthenticationException authException: 인증 실패의 원인에 대한 예외 객체다.
- throws IOException: 입출력 오류가 발생할 수 있기 때문에 IOException을 던질 수 있다.
- response.sendError(HttpServletResponse.SC_UNAUTHORIZED);: HTTP 응답에 401 Unauthorized 상태 코드를 설정하여 클라이언트에게 인증이 필요하다는 메시지를 보낸다. SC_UNAUTHORIZED는 상수로 401에 해당한다.