MyUserDetailService 코드 다 적고
로그인 시도해보는 과정에서
There is no PasswordEncoder mapped for the id "null"
위 오류가 발생합니다.
맞는 아이디 비밀번호를 입력했을때만 발생하는것 같고 존재하지 않는 아이디와 패스워드를 입력하였을땐 오류가나지 않습니다.
왜 이런것일까요?
MyUserDetailsService.java
package com.create.shop.member;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Service
public class MyUserDetailsService implements UserDetailsService {
private final MemberService memberService;
public MyUserDetailsService (MemberService memberService){
this.memberService = memberService;
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Optional<Member> result = memberService.findByUsername(username);
if(result.isEmpty()){
throw new UsernameNotFoundException("그런아이디 없음");
}
var user = result.get();
List<GrantedAuthority> role = new ArrayList<>();
role.add(new SimpleGrantedAuthority("일반유저")) ;
return new User(user.getUsername(), user.getPassword(), role);
}
}
-
이 게시글은
신민석에 의해 1 년, 2 월 전에 수정됐습니다.
-
이 게시글은
신민석에 의해 1 년, 2 월 전에 수정됐습니다.