본문 바로가기

전체 글828

[1년 후 마실가실] Spring Security + JWT - Header 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.  JWT 사용 방식에 대해 알고 계신가요..?공식 문서에서는 Authorization Header에 Bearer를 붙여 토큰을 발해서 보내라, 라고 하고 있습니다. 문득, 제 지난 코드는 Header가 아닌 Body를 쓰고 있다는 사실을 알게 되었고, 그로 인해 토큰 재발급과 로그아웃을 리리팩토링하게 되었습니다. 공식 문서가 시키는대로 완성된 코드를 정리해 보고자 합니다. 1. 로그인LoginFilter.javaSpring Security에서 제공하는 폼을 사용하면 UsernamePasswordAuthenticationFilter를 통해서 로그인 인증이 진행됩니다.저는 별도의 회원가입 양식을 사용하기 때문에 UsernamePass.. 2024. 11. 3.
[1년 후 마실가실] Spring Security + JWT - LoginFilter 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.  요즘 제 표정입니다. Spring Security Exception 처리에 막혀서, 이건.. 이건.. 학습이 필요하다는 생각이 간절히 들어 요즘 Security 강의를 듣습니다.. 근본.. Login부터 다시 돌아가보고자 합니다..  Spring Security에서 기본으로 제공하는 Form Login 방식을 사용하지 않기에 Form Login 방식에서 사용하는 Security Filter인 UsernamePasswordAuthenticationFilter을 상속받은 LoginFilter를 생성합니다.username(id와 동일한 개념으로 생각하면 될 것 같습니다)과 password를 사용해서 로그인을 할 경우, obtainUs.. 2024. 10. 27.
[1년 후 마실가실] User Error Code HttpStatus 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.  만들어 놓은 API의 Test Code 작성이 어느정도 마무리 되어가고 있습니다. 그러다가 JWT Error Code관련 반환 Http Status가 잘못되어 있음을 알게 되었습니다..! 이참에 갖고 있는 Error Code를 정리하는데, 중복 이메일 검증에서 GPT가 Conflict를 추천해주는데, 찾아보니 합리적인 이유가 있던 추천..! 그래서 그 내용을 간단히 정리해보고자 글을 써 봅니다.  UserErrorCode.java🗒️ 회원 가입 Validation과 관련된 오류 → Bad Request🗒️ 회원 가입 이메일 중복 검증 → Conflict  * 400 - Bad Request: 요청 자체가 잘못되었을 때 사용하.. 2024. 10. 19.
[1년 후 마실가실] Controller Test Code - mockMvc.perform() 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.  Controller Test Code의 mockMvc.perform()..근데, ArgumentCaptor를 곁들인.. JWT 난관은 구현에서 끝나지 않았습니다.Test Code가 기다리고 있었습니다. 앞뒤양옆으로 봐도 똑같은 DTO 객체를 전달하는데, 자꾸 아니라며 다르다며 우겨대는 테스트 코드와 싸우다 이유를 찾게 되어 글로 정리해보고자 합니다.  UserControllerTest.java문제MockHttpServletResponse: Status = 200 Error message = null Headers = [] Content type = null Bo.. 2024. 10. 17.
[1년 후 마실가실] API 문서화 도구 - Spring REST Docs 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.  리팩토링을 Backend 부분만 하고 있다보니, 문득.. 다른 이들이 제 API를 확인할 길이 전혀 없다는 걸 최근에 깨달았습니다..! 프론트 연결...까지는 시간이 오래 걸릴 것 같아서, 그간 만들어놓은 API를 문서로라도 남겨두면 좋을 것 같아서 API 문서화 도구를 썼습니다. 근래 작업한 내용 중에서 가장 많은 블로그 글을 찾아보았습니다.. 그렇기에 정리가 꼭 필요하다고 판단되어 글을 작성해봅니다.  1. API 문서화클라이언트가 REST API 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URI, request body, query parameter 등)를 정리하여 문서화 하는 것  * 일반적으로 애.. 2024. 10. 10.
[1년 후 마실가실] Issue 및 PR Template 설정과 Label 변경 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다. 최근에 1년후 마시가실에 커밋 규칙이 생겼습니다.From me To me이지만, 습관을 잘 들여놓으면 좋기 때문이죠.(혹시 누군가 찾아와 제 프로젝트에 대한 관심을 표현했을 때, 제 커밋 규칙과 함께 할 날이 올 수도 있습니다😎.) 커밋 규칙에 맞춰 developer에서 작업하고 commit하고 push하고 pr을 작성하다 문득.. 아주 문득.. Issue와 PR 컨트롤을 잘 하고 있나에 대한 고민이 생겼습니다. 추적할 수 있게 PR에 Issue 번호는 적는데, 뭔가 부족한 듯한 이 느낌..🥸 그래서 브랜치 전략도 바꾸고, Issue도 바꾸고, PR도 바꾸고, 그냥 다 바꾸고.. 바꿨습니다.지금은 Issue로부터 Branch를.. 2024. 10. 9.