전체 글58 Invalid character found in the request target 에러 해결하기 @GetMapping을 적용한 API를 테스트하던 중에 Invalid character found in the request target 라는 에러를 맞이했다. 찾아보니 Tomcat에서 URL parameter에 특수문자가 있으면 에러를 발생시키는 것이었다. 허용이 필요한 특수문자들을 relaxedQueryChars 옵션으로 허용할 수 있었다. 그래서 Tomcat을 커스텀 할 수 있는 config 파일을 하나 추가했다. @Configuration public class TomcatWebCustomConfig implements WebServerFactoryCustomizer { @Override public void customize(TomcatServletWebServerFactory factory) .. 2023. 9. 8. @RequestBody DTO에 Null 넘어오는 이슈 해결 댓글 기능을 개발하다가 DTO에 자꾸 Null이 넘어와서 댓글 등록이나 수정이 안되는 이슈가 발생했다. @PreAuthorize("hasRole('ROLE_USER')") @PatchMapping("/{ctId}") public ApiResult update(@PathVariable("ctId") Long ctId, @LoginUser CustomUserDetails customUserDetails, @RequestBody UpdateCommentRequest request) { commentService.updateComment(ctId, customUserDetails.getUserId(), request); return success(); } LoginUser 어노테이션을 추가하고 테스트하다 생긴 .. 2023. 9. 7. Querydsl 세팅하기 SpringBoot3과 Java17 버전으로 개발을 진행하고 있다. 검색 기능이나 페이징 처리 같은 보다 복잡한 쿼리들을 짜기 위해서 Querydsl을 사용했다. Build.gradle implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persi.. 2023. 9. 6. JWT 활용한 로그인 구현 - 3 이전 글에서 JWT를 사용할 수 있게 코드를 다 짰었다. 그래서 이번에는 API를 만드는 과정을 정리해보고자 한다. UserApi @RestController @RequestMapping("/user") @RequiredArgsConstructor public class UserApi { private final UserService userService; @PostMapping("/sign-in") public ApiResult signIn(@Valid @RequestBody SignInRequest request) throws SignInException { return success(userService.signIn(request)); } } 나는 return 방식을 통일해주기 위해서 ApiResu.. 2023. 9. 1. 이전 1 ··· 7 8 9 10 11 12 13 ··· 15 다음