문제상황 로그인 요청 후 cookie에 refresh token을 담아 보내주고 있는데, 로컬 서버에서 로컬 클라이언트로 테스트를 하면 정상적으로 cookie에 담겨서 보내지지만 배포 후 로컬 클라이언트로 테스트를 하면 보내지지 않는 문제가 있다. 해결과정 첫번째 시도 - SameSite 설정을 None으로 바꿔본다. same-site 옵션 csrf 공격을 방어하기 위한 옵션으로 같은 도메인에서만 쿠키를 전달하거나(strict) 안전한 요청인 get을 통하는 경우에만 쿠키를 전달(Lax)하자는 것이다. 이를 None으로 설정하면 보안 위협을 받을 수 있기 때문에 secure 옵션을 추가해주어야며, 실제로 사용하는 것이 아니라 개발 환경에서만 사용해야한다. 또, secure 옵션을 사용하기 위해서는 htt..
Study/Trouble Shooting
문제상황 회원가입한 유저의 권한을 DB에서 직접 ADMIN 으로 바꿔준 다음 ADMIN 권한을 가진 유저만 접근할 수 있는 api를 만들었는데, 여전히 유저의 권한이 USER 여서 접근할 수 없는 문제가 발생했다. 해결과정 디버깅을 돌려보니 DefaultOAuth2UserService 를 상속한 CustomOAuth2UserService 클래스의 loadUser 메소드에서 불러온 OAuth2User user = super.loadUser(userRequest); 의 user에서부터 이미 ROLE_TYPE 이미 USER 로 세팅되어 있었다. 해당 코드가 있는 전체 코드는 다음과 같다. CustomOAuth2UserService.java @Override public OAuth2User loadUser(OA..
문제상황 분명 CORS 정책을 허용해주는 코드를 잘 적용했다고 생각했는데 자꾸 똑같은 시뻘건 에러를 내뱉었다. 거의 3일동안 에러를 해결하기 위해 찾아 해맨거 같은데 서버 단독으로는 해당 문제를 테스트해볼 수가 없어서 고민하던 중에 다른 프론트 분의 도움으로 테스트를 해볼 수 있었다. 해결과정 구글의 바다에서 허우적대던 와중에 다음과 같은 글을 발견했다. Tomcat8.5 + SpringBoot CORS 문제 해결 Tomcat8.5 + SpringBoot CORS 문제 해결 환경은 SpringBoot의 내장톰캣을 이용하지 않고 톰캣 서버를 별도로 설치하여 그 안에서 스프링부트 앱을 올리는 구조였다. 프로젝트의 API를 프론트개발 쪽에서 호출해야 하는데 CORS 문제가 있어 S 12teamtoday.tis..
문제상황 소스트리가 계속해서 튕기는 현상이 나타났다. 전에는 간헐적으로 나타나더니 이번에는 아주 틈만 나면 예기치 못하게 종료되기 시작했다. 소스트리의 예기치 못하게 종료되는 이슈를 해결해보자. 해결과정 해결방법에는 두가지가 있다. 첫번째는 소스트리의 설정을 바꿔주는 방법이다. 1. 소스트리 설정 변경 방식 1) 소스트리 전역 사용자 설정 체크 해제 단축키 - (mac) command + , 해당 창에서 표시되어있는 부분 체크 해제 2) 저장소 창에서 설정 → 고급 → 전역 사용자 설정 사용 체크 해제 이러면 높은 확률로 예기치 않게 종료되는 이슈를 해결할 수 있다. 많은 사람들이 겪고 있는 문제같은데 정확한 원인은 파악된게 없고 다들 추측으로만 이렇다더라 하고 있는 듯하다. 무언가의 충돌 때문인거 같은..
문제상황 지난 삽질로그에서 계속 고민하던 문제인 '왜 지연로딩을 설정했는데도 참조하고 있는 객체를 통째로 들고다니지?' 라는 물음에 대한 이유를 어느정도 파악한 것 같다. PostRestController.java @GetMapping("") public List getPosts() { List postsList = postService.getPosts(); return postsList; } PostService.java public List getPosts() { List posts = postRepository.findAllByOrderByCreatedAtDesc(); return posts; } Post.java @Entity @Getter @NoArgsConstructor @JsonIdentit..
문제상황 06/06일 TIL로 작성한 2번째 문제가 아직 근본적으로 해결되지 않아서 쓰는 삽질로그. [TIL] 06/06 항해99 25일차 - 과제 [나만의 블로그 만들기] [TIL] 06/06 항해99 25일차 - 과제 [나만의 블로그 만들기] 들어가며 오늘부터는 달성 목표에 우선순위를 정해두고 하나씩 해결하는 방식으로 공부를 진행하고자한다. 확실히 하나씩 항목을 지워가면서 하니까 성취감도 들면서 내 페이스를 조절하기가 annajin.tistory.com 결국 stackoverflow 에러는 해결을 했지만 지연로딩으로 설정했을 때 해결이 되었어야하는게 아닌가? 라는 물음에서 시작된 순환참조 해결하는 삽질이다. + 지연로딩을 설정했음에도 참조하고 있는 객체를 전부 들고다니는 이유를 어느정도 파악한 것 같..
깃 커밋을 정말 열심히 했는데 잔디가 안심어졌다!!!!!! 이게 무슨 일이야... 내 잔디..ㅠㅠ 깃에서 반영이 느린가 했더니 그건 또 아니었다. 구글링해보니 깃에 설정한 이메일과 로컬의 이메일이 달라서 생기는 문제라고 한다. 캡쳐를 안해놨는데... 찾아보니까 설정한 이메일에 오타가 나있었다. 해당 부분을 git config --global user.email "" 으로 바꿔줬는데 그럼 기존 커밋들은 어떻게 복구하죠? rebase로 기존 커밋들을 돌릴 수 있다. https://wellbell.tistory.com/43 github 잔디밭 안 심어지는 현상 해결 및 이미 커밋한 내용 반영하기 1. github 잔디 안심어지는 현상 해결 흔히 잔디밭이라고 불리는 github contributions(acti..
파이썬으로 코딩테스트 대비 알고리즘 공부하던 도중 TypeError: reverseList() missing 1 required positional argument: 'head’ 에러를 만났다. 연결리스트를 공부하던 부분이었는데, 코드가 맞다고 생각하고 있었는데 대체 뭐가 문제인지 전혀 모르겠더라... 에러로그를 보면 인자가 하나 부족하다고 하는데 대체 뭐가 부족한거지?? 구글링을 해봐도 관련 내용을 찾기가 굉장이 어려웠는데 다행히 항해99의 수강생분들 중 능력자이신 분에게 도움을 요청해서 간단하게 해결했고 앞으로의 실수를 방지하기 위해 삽질로그를 작성해보기로 했다. 문제 - missing 1 required positional argument: 에러 에러가 떳던 전체 코드는 다음과 같다 class Li..
Ecilpes에서 여태 잘만 사용하던 gradel에서 갑자기 에러가 떴다. 공공 API를 사용하기 위해 webcilent를 활용하려고 webflux 디펜던시를 추가한 후 gradle refresh를 했는데 갑자기 날 반기는 시뻘건 에러로그 때문에 뇌정지가 오면서 폭풍 구글링에 들어갔는데... 아니 난 건드린데 코드 한 줄 추가한 거밖에 없는데??? 정말 거짓 하나 없이 지금까지는 문제가 없던 녀석이 갑자기 피를 토하면서 노트북도 버벅이게 만드니까 멘붕이 왔다. 어찌저찌 잘 해결은 했으니 삽질로그를 작성해보고자 한다. 문제 - Unsupported class file major version 61 에러 현재 개발 중인 환경은 다음과 같다 spring boot 2.6.4 jdk 17 gradle 7.2 에러..
MySQL 연동은 우당탕탕이었지만 어떻게 성공적으로 완료하고 select문이 정상적으로 실행되는 것까지 확인했다. 내가 사용한 테이블은 아래 사진과 같음. 이번에 터진 에러는 POST 방식으로 파라미터를 받아오는 과정에서 생겼다. 첫번째 문제 - Mybatis 에러 (에러코드를 잊어버렸다...) 형변환이 문제인 줄 알고 birthDay 객체의 타입을 LocalDate에서 String으로 바꾸고 시도했더니 이번엔 db에서 에러가 떴다. 알고보니 Mybatis 문법 자체를 틀려서 나타나는 에러였다... 에러난 mapper.xml INSERT INTO user ( `name` , `birth_day` ) VALUES ( `name` = ${name} , `birth_day` = ${birthDay} ) 옳은 ..
반응형