작성자 없음
작성자 정보가 삭제된 글입니다.
24.09.15 16:06 작성
·
39
·
수정됨
0
OAuth 2.0 Social Login 연동 구현 (6) 부분에 있는 영상 33:46까지 따라왔지만 form로그인에서 발생한 문제입니다.
form login의 inmemory나 jdbc형태로 하는 게 아닌 CustomUserDetailsService를 통해서만 인증을 하는 것으로 보이는데, 이와 같은 에러가 발생하는 이유를 모르겠습니다. (에러코드가 조회되지 않음)
디버그 모드를 확인해보니,
DaoAuthenticationProvider클래스에 있는 additionalAuthenticationChecks메소드에서 에러가 발생하고 있습니다.
if (!this.passwordEncoder.matches(presentedPassword, userDetails.getPassword())) { this.logger.debug("Failed to authenticate since password does not match stored value"); throw new BadCredentialsException(this.messages .getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials")); }
2. presentedPassword 이부분이 값이 빈값으로 넣어지고 있는데 문제가 되는 부분인 것 같아 질문드립니다.
2-1. 추가적으로 이부분은 첫 로그인이라서 에러나는 부분하고 상관이 없이 발생하는지 질문드립니다.
에러로그가 확인이 불가능하여, 코드 공유를 위해 프로젝트 공유를 하였습니다. 확인 부탁드립니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
JUNI님이 OAuth 2.0 로그인 연동 시 발생하는 문제에 대해 궁금해하시는 점 이해했습니다. 올려주신 문제 상황을 기반으로 분석한 결과, 인증 과정에서 presentedPassword
가 빈 값으로 설정되어 BadCredentialsException
이 발생하는 문제를 언급하셨습니다.
이와 관련해 유사한 문제를 경험하신 다른 학습자의 질문과 답변을 찾아보았습니다. 여기를 참고하시면 문제 해결에 도움이 될 것 같습니다:
실전 프로젝트 - 시크릿 키 관련 오류 질문입니다.
이 게시물에서는 CustomAuthenticationProvider
를 구현할 때 발생하는 문제와 DaoAuthenticationProvider
로 인해 발생하는 인증 문제에 대응하는 방법을 다룹니다. 현재 설정과 맞지 않는 parentAuthenticationManager
문제를 해결하는 방법을 참고할 수 있습니다.
Error , exception이 잘 안됩니다.
이 질문에서는 로그인 에러가 발생할 경우 에러 문구가 표시되지 않는 문제와 관련된 해결 방법을 다룹니다. 주로 로그인 실패 핸들러의 구현과 설정을 확인하는 방법이 자세히 설명되어 있습니다.
CustomUserDetailsService
와 DaoAuthenticationProvider
설정을 재확인하세요. presentedPassword
값이 올바르게 전달되고 있는지 점검해야 합니다.passwordEncoder.matches()
호출 시 비밀번호가 올바르게 인코딩되고 있는지 확인하세요. 인코더가 제대로 설정되지 않으면 인증이 실패할 수 있습니다.additionalAuthenticationChecks
에서 실제로 presentedPassword
와 userDetails.getPassword()
값이 어떻게 설정되고 있는지 확인하세요.위의 리소스를 참고하여 설정을 조정해 보시기 바랍니다. 더불어 문제가 되는 설정이 있다면 구체적으로 추가 정보를 제공해 주시면, 추가적인 도움을 제공드릴 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.