HttpServletRequest
- 클라이언트가 전달한 데이터를 담고 있는 객체
ex. 데이터를 받고 토큰을 사용할 수 있는 양식으로 맞춰줌
*JwtUtil
public String resolveToken(HttpServletRequest request) {
String bearerToken= request.getHeader(AUTHORIZATION_HEADER);
if(StringUtils.hasText(bearerToken) && bearerToken.startsWith(BEARER_PREFIX)){
return bearerToken.substring(7);
}
return null;
}
HttpServletResponse
- 서버작업을 하고, 클라이언트에게 작업결과를 전달하기 위해서 사용
ex. 토큰으로 로그인
@PostMapping("/login")
public ResponseEntity<ApiResponseDto> login(@RequestBody AuthRequestDto loginRequestDto, HttpServletResponse response) {
try {
userService.login(loginRequestDto);
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(new ApiResponseDto("회원을 찾을 수 없습니다.", HttpStatus.BAD_REQUEST.value()));
}
//JWT 생성 및 쿠키에 저장 후 Response 객체에 추가
response.addHeader(JwtUtil.AUTHORIZATION_HEADER, jwtUtil.createToken(loginRequestDto.getUsername(), loginRequestDto.getRole()));
return ResponseEntity.ok().body(new ApiResponseDto("로그인 성공", HttpStatus.CREATED.value()));
}