오류모음집/Ohouse버그

Security Customlogin 로그인 에러(비밀번호)- 2

가끔개발 2023. 9. 8. 14:52

1. 비밀번호 오류

o.s.s.c.bcrypt.BCryptPasswordEncoder     : Encoded password does not look like BCrypt
o.s.s.a.dao.DaoAuthenticationProvider    : Failed to authenticate since password does not match stored value

아이디는 맞고 DB에 저장된패스워드와 비밀번호가 저장된 값과 일치하지 않아 인증에 실패했습니다.

 

2. debugger

debugger로 값이 정확히 들어가는지 확인

 

2-1 authorites password  정확히 가져오는지 확인

지금 data sql문과 전혀 다르게 값이 들어가있다.

insert into member (email, created_at, modified_at, member_no, password, birthday, name, nickname)
values('d@gmail.com',now()-1,now(),1,'{bcrypt}asdf1234','2000-01-01','test','nick test');

 

2-2 memberdto에서 잘못 가져온것을 확인하여 memberdto를 수정해주었다.

3. 수정후 테스트 

아직도 패스워드를 찾지 못하는중이다. 들어온값과 db에서 가져온값을 제대로 가져오는지 확인

각자 잘 가져온것으로 확인이 된다.

 

4. UserDetail에서 문제점

        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder()를 추가 해줬더니  로그인이 되었다.

public static PostPrincipal of(String email, String Password, String name, String nickname, LocalDate birthday) {
        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        String encodePassword = passwordEncoder.encode(Password); // 비밀번호 해싱
        Set<RoleType> roleTypes = Set.of(RoleType.USER);
        return new PostPrincipal(
                email,
                encodePassword,
                roleTypes.stream()
                        .map(RoleType::getValue)
                        .map(SimpleGrantedAuthority::new)
                        .collect(Collectors.toList()),
                name,
                nickname,
                birthday
        );
    }

https://velog.io/@yaho1024/Spring-Security-UsernamePasswordAuthenticationFilter%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

 

Spring Security - 4. UsernamePasswordAuthenticationFilter알아보기

안녕하세요. INCHEOL'S 입니다. 오늘은 아이디, 패스워드 기반의 인증을 담당하고 있는 UsernamePasswordAuthenticationFilter 대해 알아보겠습니다.목차1\. UsernamePasswordAuthenticationFilter2\. Auth

velog.io

select
        m1_0.email,
        m1_0.member_no,
        m1_0.password,
        m1_0.birthday,
        m1_0.created_at,
        m1_0.modified_at,
        m1_0.name,
        m1_0.nickname 
    from
        member m1_0 
    where
        m1_0.email=?
c.p.o.service.member.MemberService       : Success find member AuditingFields(createdAt=2023-09-09T15:36:47, modifiedAt=2023-09-09T15:36:48)
o.s.s.a.dao.DaoAuthenticationProvider    : Authenticated user
o.s.ChangeSessionIdAuthenticationStrategy : Changed session id from 7B1BFABD2640BF2A7376262EE845B3B8
o.s.s.w.csrf.CsrfAuthenticationStrategy  : Replaced CSRF Token
w.c.HttpSessionSecurityContextRepository : Stored SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=d@gmail.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=7B1BFABD2640BF2A7376262EE845B3B8], Granted Authorities=[ROLE_USER]]] to HttpSession [org.apache.catalina.session.StandardSessionFacade@60c58676]
w.a.UsernamePasswordAuthenticationFilter : Set SecurityContextHolder to UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=d@gmail.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=7B1BFABD2640BF2A7376262EE845B3B8], Granted Authorities=[ROLE_USER]]
o.s.s.web.DefaultRedirectStrategy        : Redirecting to /
o.s.security.web.FilterChainProxy        : Securing GET /
o.s.security.web.FilterChainProxy        : Secured GET /
w.c.HttpSessionSecurityContextRepository : Retrieved SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=d@gmail.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=7B1BFABD2640BF2A7376262EE845B3B8], Granted Authorities=[ROLE_USER]]]

로그인이 가능하졌다.