UserEntity를 UserDto로 매핑한 후 pwd 출력에 대하여
510
12 asked
좋은 강의 정말 감사드립니다.
강의 10:47 무렵에..
아래 코드처럼 userEntity를 UserDto로 매핑한 결과를 디버그모드에서 값을 확인하는 부분이 있는데요.
UserDto userDto = new ModelMapper().map(userEntity, UserDto.class);
UserEntity에는 pwd가 설정되지 않았으므로 변환된 결과값인 userDto의 pwd 값은 null 이 나오는게 맞지 않을까요?
로그인할때 pwd값이 아래의 코드에 의해 암호화 된다는 것을 설명하신부분은 이해했습니다.
auth.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder)
사실 별로 중요하지 않은 부분이라 그냥 넘어갈수도 있지만 이상해서..
pwd 값은 어디서 왔을까? 라는 생각이 들었습니다.
혹시나 해서 Mapstruct 라는 라이브러리를 사용하여 Mapping 을 시도했을때는 아래의 이미지 처럼 null이 출력되었습니다.
제가 잘못 이해한건가요?
Answer 3
3
안녕하세요, 이도원입니다.
ModelMapper에서 두 객체 간의 데이터를 전송하는 방식을 지정하기 위해 Matching Strategy를 지정할 수 있습니다. (http://modelmapper.org/user-manual/how-it-works/)

User Controlelr에서 사용자 등록할 때 사용되는 createUser() 메소드에서 처럼 MatchingStrategies를 지정하면 매칭 수위를 조절하실 수 있습니다. MatchingStrategies는 Loose, Standard, Strict 3가지로 지정할 수있으며, Strict가 매칭 수위를 가장 까다롭게 합니다. 예를 들어, 아래 이미지는 순서대로 Loose, Standard, Strict로 지정했을 때 UserDto의 pwd 값이 어떻게 달라지는지 보여주는 이미지입니다. (테스트를 하기 위해 UserDto에 decryptedPwd라는 필드를 추가하였습니다)

* Standard

* Loose

* Strict

정확하게 encryptedPwd만을 변환하시려면 MatchingStrategies를 MatchingStrategies.STRICT로 지정해서 사용해 보시기 바랍니다.
감사합니다.
kafka 업데이트 강의 듣고 시포요
0
106
2
강의 교안
0
95
2
마이크로서비스간 통신 시, 인증 처리
0
103
2
api gateway 에서 인증 처리
0
71
1
섹션 19 질문드립니다
0
74
2
강의 자료 업데이트
0
98
2
부하분산 강의 섹션
0
63
1
강의자료는 어디에서?
0
95
2
강의 자료는 어디서 다운 받을 수 있나요?
0
125
2
전체 사용자 조회시 오류
0
63
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
118
2
학습 방향
0
103
2
카프카 커넥터 사용 목적 문의
0
89
2
kafka 강의
0
115
2
서비스 디스커버리 종류
0
90
2
강의 자료에 대해서 궁금해요
0
124
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
91
2
Kafka Source Connect 버전 에러
0
93
2
소스커넥터는 사용안한 거 맞죠?
0
84
2
강의자료 업데이트 문의
0
98
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
63
1
강의 업데이트 계획이 궁금합니다.
0
118
2
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
0
167
2
어떤 것이 업데이트 된 건가요?
0
168
2

