Skip to content

Commit

Permalink
feat : jwt 인증 실패 핸들러 추가
Browse files Browse the repository at this point in the history
- jwt 인증 실패 핸들러 추가
Open #12
  • Loading branch information
seokho-1116 committed Jan 8, 2024
1 parent 1dd6cdd commit ab4a486
Showing 1 changed file with 41 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package site.timecapsulearchive.core.global.security.jwt;

import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.stereotype.Component;
import site.timecapsulearchive.core.global.common.response.ErrorCode;
import site.timecapsulearchive.core.global.common.response.ErrorResponse;

@Component
@RequiredArgsConstructor
public class JwtAuthenticationFailureHandler implements AuthenticationFailureHandler {

private final ObjectMapper objectMapper;

@Override
public void onAuthenticationFailure(
HttpServletRequest request,
HttpServletResponse response,
AuthenticationException exception
) throws IOException {
SecurityContextHolder.clearContext();

ErrorResponse errorResponse = ErrorResponse.create(
ErrorCode.INVALID_TOKEN_EXCEPTION.getCode(),
exception.getMessage()
);

response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);

response.getWriter()
.write(objectMapper.writeValueAsString(errorResponse));
}
}

0 comments on commit ab4a486

Please sign in to comment.