반응형
Spring Security를 이용해서 회원가입을 하고 로그인을 하려고보니 아래와 같은 에러가 발생했다.
이유를 확인해보니 Spring Security 버전 5 이상부터는 PasswordEncoder가 변경되었기 때문에 회원정보 저장시에 password앞에 암호화 정보를 같이 지정해서 저장해야하기 때문이다.
# 암호화 명시 방식
{암호화 명}실제 비밀번호
# 기존 패스워드
1234
# 암호화 방식을 명시한 패스워드
{noop}1234
위처럼 암호화 방식을 명시한 후에 코드를 적용해보도록하자. 아래의 코드는 회원을 생성하는 Service 로직인데, 이를 변경해보도록 하자.
# AS-IS
public Member createMember(MemberDto memberDto) {
return memberRepository.save(
new Member(
memberDto.getUsername(),
getEncodedPassword(memberDto.getPassword()),
memberDto.getRole()
));
}
# TO-BE
public Member createMember(MemberDto memberDto) {
return memberRepository.save(
new Member(
memberDto.getUsername(),
getEncodedPassword(memberDto.getPassword()),
memberDto.getRole()
));
}
private String getEncodedPassword(String password) {
return ("{noop}" + password);
}
위처럼 암호화 방식을 명시하는 메소드를 추가한 후 이 메소드를 사용해서 회원 정보를 저장하자. 그런 다음 다시 로그인을 시도하면 정상적으로 로그인 되는것을 확인할 수 있다.
반응형
'Spring' 카테고리의 다른 글
[Spring] IntelliJ 에서 queryDSL 의 Q 도메인을 찾지 못할때 (0) | 2020.08.23 |
---|---|
[Spring] ResourceLoader (0) | 2020.05.17 |
[Spring] ApplicationEventPublisher (0) | 2020.05.15 |
[Spring] MessageSource (0) | 2020.01.18 |
[Spring] Environment - Property (0) | 2020.01.07 |
댓글