본문 바로가기

분류 전체보기831

[1년 후 마실가실] @GeneratedValue(strategy = GenerationType.IDENTITY) 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다. 애플리케이션 껐다키면 userId가 50 증가한 썰.. Spring Security를 전체적으로 리리팩토링을 하고 Postman으로 전체적인 동작을 확인하고 있습니다. 그러다 문득, DB에서 UserId값을 보는데, 2000번을 넘었더라고요.내가 Create 메서드를 2000번이나 했으려나..? 라는 생각과 함께 Postman으로 Id값이 제대로 증가하는지 확인해보다 애플리케이션을 껐다 키면 50이 증가해버리는 문제를 발견했습니다. 간단하게 고쳐보는 과정을 남겨봅니다.. Hibernate5부터 MySQL DB로 @GeneratedValue를 사용해서 AUTO를 strategy로 선택하게 되면, GenerationType.TABLE.. 2024. 11. 14.
[해결 방법] "this.bCryptPasswordEncoder" is null java.lang.NullPointerException: Cannot invoke "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.encode(java.lang.CharSequence)" because "this.bCryptPasswordEncoder" is nullEnvironmentLanguage: Java 17Framework: SpringBoot 3.1.0, Spring Security 6.1.0DB: MySQL, Redis 오류java.lang.NullPointerException: Cannot invoke "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.e.. 2024. 11. 12.
[1년 후 마실가실] CharacterEncodingFilter 1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.  최근에 Security Filter를 리리팩토링하면서 기본 HttpStatus 값을 반환하여, Custom한 Error Code가 쓸 일이 없어졌습니다. 하지만, 쓰라고 만들어둔 것이기에 코드를 조금씩 바꿔서 response에 조심스럽게 담아 고객님께 전달해드렸는데 한글이 출력이 안됩니다. 하지만, 이 곳은 한국.. 한국어가 나와야 합니다.. 검색해서 나온 방법들은 통하지 않아 네이버 블로그와 GPT와 함께 열심히 찾은 결과를 작성해둡니다.. (실패) application.yml전역 설정의 중앙 허브.. application.yml 설정으로 먼저 시작해 봤습니다.spring: servlet: encoding: c.. 2024. 11. 10.
[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.