유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
로그인을 할 때 로그인한 아이디를 확인해보기위해 콘솔에 찍어보면 넘어오는 값이 없어서 null 이 찍혔다.
{"status":500,"data":"Cannot invoke \"com.blog.config.auth.PrincipalDetail.getUsername()\" because \"principal\" is null"}
어떠한 문제때문에 로그인할 때 값이 전달되지 않는지 확인해보니
PrincipalDetailService에 있는 loadUserByUsername 이라는 이름의 메서드를 오버라이딩을 하고 있는데 확인해보면
이런식으로 username을 사용하고 있다.
하지만 나는 user_id라는 변수명과 js에서도 userId라는 값을 사용하고 있었다.
그래서 user_id라고 사용하고 있는 변수명과 User.java에서도 변경하고
User.js와 loginForm.jsp 파일전부 user_id 나 userId 에서 username으로 변경해주었다.
참고로 맥기준 cmd+shift+f 윈도우기준 ctrl+shift+f 를 누르면 프로젝트 전체내에서 검색할 수 있는 기능이 있어서 user_id를 썼던 부분을 username으로 변경해주었다.
application.yml에서 create로 전체적으로 한번 초기화 한후 다시한번 회원가입-로그인을 진행해보자.
실행을한 후 홈페이지에가서 회원가입을 시도하면
콘솔에서 회원가입할 때 유저의 ID를 확인할 수 있고
DB를 확인해보면 비밀번호는 암호화되어서 들어가있는걸 볼 수 있다.
로그인이 잘되는지 확인해보기위해서 콘솔에 찍어보면 아주 잘 작동하는것을 확인할 수 있다.
이작은거로 며칠동안 찾아보고 또 여러가지를 시도해본지 모르겠지만.. 그래도 해결하니 기분은 좋았다.
아직도 왜 jstl을 사용할 수 없는지모르겠으며 antMatchers는 버전을 바꾸니 사용은 가능했었지만 다른 오류가 있어서 일단
anyRequest()와 authenticated는 주석으로 막아 모든접근을 허용한 상태로 작업을 진행중에 있다.
해당부분들도 얼른 방법을 찾아서 해결하고 싶다.
*클론코딩을 할 땐 마음대로 변수명이나 js에서 name값을 마음대로 하지말자... 헷갈리고 나중에 문제가 생길 수도 있다..ㅠ
참고한 블로그 : https://stir.tistory.com/266
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 16 스프링시큐리티로 로그인하기(3) (0) | 2023.06.05 |
---|---|
[블로그프로젝트] error. jstl 500 error 해결 (2) | 2023.05.29 |
[블로그프로젝트] 14. 스프링시큐리티로 로그인하기 (0) | 2023.04.04 |
[블로그프로젝트] error. 오류사항 (0) | 2023.03.29 |
[블로그프로젝트] 13-1. TagLibraryValidator(어?) (0) | 2023.03.16 |
댓글