▶ JwtAccessDeniedHandler 클래스
@Component
public class JwtAccessDeniedHandler implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response,
AccessDeniedException accessDeniedException) throws IOException {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
}
}
- @Component: 이 어노테이션은 Spring에 이 클래스를 Bean으로 등록하도록 알려준다. Spring은 이 클래스를 자동으로 스캔하고 애플리케이션의 다른 부분에서 의존성 주입을 통해 사용할 수 있게 된다.
- public class JwtAccessDeniedHandler implements AccessDeniedHandler: 이 클래스는 AccessDeniedHandler 인터페이스를 구현한다. AccessDeniedHandler는 Spring Security에서 접근 권한이 없는 요청에 대한 처리를 정의하는 인터페이스다. JwtAccessDeniedHandler는 인증은 되었지만 권한이 없는 경우(403 Forbidden)에 특정 동작을 수행하게 된다.
- HttpServletRequest request: 클라이언트의 HTTP 요청 정보를 포함한다.
- HttpServletResponse response: 서버가 클라이언트에 응답을 보낼 때 사용하는 객체다.
- AccessDeniedException accessDeniedException: 접근이 거부된 원인에 대한 예외 객체다.
- throws IOException: 입출력 오류가 발생할 수 있기 때문에 IOException을 던질 수 있다.
- response.sendError(HttpServletResponse.SC_FORBIDDEN);: HTTP 응답에 403 FORBIDDEN 상태 코드를 설정하여 클라이언트에게 접근 권한이 없다는 메시지를 보낸다. SC_FORBIDDEN은 상수로 403에 해당한다.