개인 코드 분석

스프링 시큐리티 Jwt: jwt.JwtAuthenticationEntryPoint

GLaDiDos 2024. 11. 5. 10:19

▶ 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에 해당한다.