프로젝트(48)
-
Spring Security에서 Unauthorized, Forbidden 처리
JwtAuthenticationFilter에서 토큰을 검증하는 과정에서 ExpiredJwtAuthenticationException, InvalidJwtAuthenticationException 등과 같이 AuthenticationException을 상속하여 만든 커스텀한 예외들이 터질 수 있다. 해당 예외들을 하나하나 전역적으로 예외 처리하려고 한다. 개념 먼저, Spring Security에는 AuthenticationException, AccessDeniedException 이 존재한다. 해당 예외들은 시큐리티 필터체인의 마지막에 속해있는 ExceptionTranslationFilter에서 처리할 수 있다. ExceptionTranslationFilter는 필터체인에 속해져 있으므로, 예외는 일반적..
2024.01.15 -
[Spring Security] @AuthenticationPrincipal을 커스텀 해보자(Feat : ArgumentResolver)
문제 발생 필자는 보통 개발할 때, 시큐리티보다는 다른 기능들을 먼저 개발한 후에 시큐리티를 기능을 입히는 것을 선호한다. 이번 프로젝트 역시 위와 같이 진행했다. 기존 코드는 @AuthenticationPrincipal을 이용해 Authentication을 구현한 UsernamePasswordAuthenticationToken의 Principal인 MemberDetails에서 memberId를 조회하고 있다. @GetMapping("/meal") public ApiResponse getMeal(@AuthenticationPrincipal MemberDetails memberDetails) { Long memberId = memberDetails.getMemberId(); getMaintainMealUs..
2024.01.11 -
JPA 대소문자 구별 에러 해결 with MariaDB
문제 발생 프로젝트를 배포한 후 개발한 api에 요청하였더니, 아래와 같은 문제를 마주하였다. Hibernate : select foodentity0_.food_pk as food_pk1_0_, foodentity0_.food_calorie as food_cal2_0_, foodentity0_.food_carbohydrate as food_car3_0_, foodentity0_.food_fat as food_fat4_0_, foodentity0_.food_main_category as food_mai5_0_, foodentity0_.food_name as food_nam6_0_, foodentity0_.food_protein as food_pro7_0_, foodentity0_.food_serving_s..
2024.01.01 -
Foreign key constraint is incorrectly formed 에러 해결
문제 발생 개발집 프로젝트를 배포 중 아래와 같은 오류를 만났다. Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #..
2023.12.31 -
카카오 테크 캠퍼스 수료 및 대상 🏆
올해 초부터 계속 진행해온 카카오 테크 캠퍼스가 끝났다.우리 팀이 라춘상을 받았는 데 열심히 해준 팀원분들 너무 감사합니다. (상 이름도 참 이름도 카카오스럽다...) 아무튼 더 나은 개발자가 되기 위해서 개인 회고를 진행해보려고 한다. [깃허브 링크]https://github.com/Step3-kakao-tech-campus/Team14_BE GitHub - Step3-kakao-tech-campus/Team14_BE: 14조 Spark14조 Spark. Contribute to Step3-kakao-tech-campus/Team14_BE development by creating an account on GitHub.github.com 개인 회고 - 팀장주간 회의와 팀 소통매주 월요일 아침, 비..
2023.11.19 -
Transaction을 고려한 CheckedException 예외 처리
배경지식 CheckedException은 맨 아래에서 설명하고 있습니다. 문제 상황 현재 파일 시스템에 파일을 저장하고 있다. 아래 코드의 문제점이 무엇일까? public List storeFiles(List multipartFiles) throws IOException { List storeFileResult = new ArrayList(); for (MultipartFile multipartFile : multipartFiles) { storeFileResult.add(storeFile(multipartFile)); } return storeFileResult; } @Transactional public List saveCertifications(List certificates) throws IOEx..
2023.11.12