본문 바로가기

Spring11

[Spring] Stateless Spring Security - 1 흔히 찾아볼 수 있는 대부분의 스프링 시큐리티 코드 국내외 가릴 것 없이 수많은 Spring Security(이하 시큐리티) 관련 글을 찾아보았지만, 그 어떤 곳에서도 JWT에 특성을 제대로 살린 시큐리티 코드를 보지 못했다.블로그든, 유튜브든 어디서 시작되었는지 모를 코드를 똑같이 복사 붙여넣기 하고 있는 듯 하다. 이상하다고 생각하는 코드는 아래와 같다.@Servicepublic class UserDetailsServiceImpl implements UserDetailsService { private final UserRepository userRepository; public UserDetailsServiceImpl(UserRepository userRepository) { .. 2024. 10. 5.
[Spring] Gradle 경로 에러 Could not open cp_init remapped class cache for 38ba98x5kyfop9tii2ef1tpdm (C:\Users\USER\.gradle\caches\6.1.1\scripts-remapped\wrapper_init13_cruz05vu9w82js3x0uvl11riu\38ba98x5kyfop9tii2ef1tpdm\cp_init3607aee355f62839c5e6f549478ccc87).> Could not open cp_init generic class cache for initialization script 'C:\Users\USER\AppData\Local\Temp\wrapper_init13.gradle' (C:\Users\USER\.gradle\caches\6.1.1.. 2024. 9. 11.
[Spring] 스프링 3.3에서 추가된 `pageSerializationMode = VIA_DTO` 스프링 공식 Github 해당 스펙 PR 링크(https://github.com/spring-projects/spring-boot/pull/39797)    스프링 3.3으로 자료를 만들다가 처음 보는 WARN 로그가 보였다.2024-08-26T15:13:27.588+09:00 WARN 63105 --- [todo] [nio-8080-exec-2] PageModule$PlainPageSerializationWarning : Serializing PageImpl instances as-is is not supported, meaning that there is no guarantee about the stability of the resulting JSON structure! For a stable JS.. 2024. 8. 26.
[Spring] @ModelAttribute와 @RequestBody의 데이터 바인딩 1. @ModelAttribute를 사용한 경우@Getter@Setter // @Setter가 빠진다면?public class FileUploadDto { private String description; private MultipartFile file;}@Controllerpublic class FileUploadController { @PostMapping public void uploadFile(@ModelAttribute FileUploadDto fileUploadDto) { MultipartFile file = fileUploadDto.getFile(); String description = fileUploadDto.getDescription(); .. 2024. 4. 5.
[Spring] 코틀린 쓸 때 @Valid 동작이 안된다면 data class OwnerSignUpRequest( @field:Email(message = "이메일 형식을 입력해주세요.") val email: String?, @field:Size(min = 8, message = "비밀번호는 8글자 이상이어야 합니다.") val password: String?, @field:Size(min = 11, message = "잘못된 휴대전화 번호입니다.") val phoneNumber: String?, val storeName: String? = null, val ownerName: String, @field:Size(min = 10, message = "사업자번호는 10글자 이상이어야 합니다.") val businessRegistrationNumber: String.. 2024. 1. 18.