spring-security

2025. 1. 23. 12:34카테고리 없음

참고 https://docs.spring.io/spring-security/reference/servlet/authentication/passwords/index.html ( service에서 구현 예정)
할일 1. UserDetailsService 구현하기 : 메소드 하나 오버라이딩 할 예정
사용자가 입력한 username을 가지고 DB에 가서 조회
존재하지않으면 예외 발생
존재한다면 조회된 정보를 가지고 UserDetails 객체를 생성하여 반환
 
할일 2. AuthenticationManager  인증관리자 : 사용자의 자격증명, 검증된 사용자의 정보를 가지고 특정 securtiy홀더에 저장

 

 

[ 흐름 ]

Http Request : 로그인 요청함

정상 로그인 시 토큰을 넘겨야 함

AuthenticationManager  비교를 진행할거고, 문제가 있으면 알아서 예외를 발생시켜줌

 

UserDetailsService를 구현(개발자가 직접)해서 사용자가 입력한 ID를 가지고 DB에서 조회하는 메서드를 만들어 조회결과가 없으면 예외 발생, 조회 결과 존재 시 사용자의 정보를 담기위한 객체 "User"를 만들어 사용할 예정. User는 UserDetails라는 인터페이스를 만들어서 사용한다.

보통 ID를 가지고 조회를 하므로 Pwd가 맞는지 검증을 하면 된다. 

id가 없으면 예외발생시키면되고, 있으면 matchs사용해서 검증하자.

 

 

현재 테이블에 userNo컬럼을 생성했기 때문에 User만으로 사용할 수 없고 별도의 클래스를 만들어야함

 

 

 

 

POST : members → 가입

POST : members/login → 로그인

PUT : members → 비밀번호 수정