본문 바로가기
TIL & WIL

[TIL] #105.231227

by mmm- 2023. 12. 27.

어제 목표 & 오늘 완료한 한 일 

더보기
  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 기초 개인과제 해설 강의
  • 스프링 심화 과제 (테스트 코드 작성)
  • JPA 심화 강의듣기
  • 심화 팀 프로젝트
  • CS 공부 (운영체제)

 

내일 목표

  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 기초 개인과제 해설 강의
  • 스프링 심화 과제 (테스트 코드 작성)
  • JPA 심화 강의듣기
  • 심화 팀 프로젝
  • CS 공부 (운영체제)

 

발생한 오류와 해결 방법

 

1️⃣. 로그아웃 부분을 구현하고 싶어 블로그를 참고해 코드를 작성하려는데 WebSecurityConfig에서 .and()를 해주니 

'and()' is deprecated and marked for removal

이와 같은 에러가 발생했다. 해당 에러의 내용은 and()는 더이상 사용되지 않는다는 내용이었다.

Spring Security 6.1.0부터는 해당 방법을 사용하지 않는다고 한다.

 

2️⃣. 입력받은 비밀번호와 이미 저장되어 있는 비밀번호가 일치하는지 확인하기 위해 passwordEncoder.matches()를 이용했다. 분명 일치하는 비밀번호인데도 불구하고 비밀번호가 일치하지 않는다는 에러 메시지를 확인하였다. 그 이유는 매개변수의 순서를 잘못 넣어줬기 때문이다. matches() 메서드를 살펴봤을 때, 첫번째 매개변수는 원시의 비밀번호가, 두번째 매개변수로는 인코딩된 비밀번호가 왔어야 했다. 근데 나는 두 개의 순서를 바꿔서 작성하여 에러가 발생한 것이었다.

 

참고 블로그

1) https://devhan.tistory.com/310
2) https://velog.io/@woosim34/Spring-Security-6.1.0%EC%97%90%EC%84%9C-is-deprecated-and-marked-for-removal-%EC%98%A4%EB%A5%98

 

 

느낀점

오늘 회원탈퇴, 비밀번호 및 이메일 수정 기능을 구현했다. 로그아웃은 시도해봤는데도 불구하고 아직 해결하지 못하고 있다. 인터넷 서치하면서 여러 방법을 찾아보고 시도해보다가 한 블로그 글을 참고하여 SecurityContextLogoutHandler 클래스를 이용해봤다.

로그아웃을 수행하는 코드를 작성해봤는데 로그아웃이 됐다는 문구는 볼 수 있지만, 실제로는 로그아웃이 된 것 같지 않다. 아마 로그아웃은 정상적으로 했더라도 토큰을 무효화 해야하는데 그렇지 못하고 계속 쓸 수 있어 이러한 문제가 발생하는 것 같다.

SecurityContestLogoutHandler 클래스를 살펴보니 무효화 처리를 하려면 invalidateHttpSession이 true여야 한다는 것 같아서

securityContextLogoutHandler.setInvalidateHttpSession(true);

이와 같이 코드를 작성해봤는데 여전히 문제가 해결되지 않고 있다. 로그아웃 부분은 빨리 끝낼 수 있을 것이라고 생각했는데 생각보다 너무 어려운 것 같다.

'TIL & WIL' 카테고리의 다른 글

[TIL] #107. 231229  (0) 2023.12.29
[TIL] #106. 231228  (1) 2023.12.28
[TIL] #104. 231226  (0) 2023.12.26
[TIL] #103. 231225  (0) 2023.12.25
[WIL] #15. 231218 ~ 231224  (0) 2023.12.24