강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của kicoker0091
kicoker0091

câu hỏi đã được viết

Ứng dụng kiến trúc microservice (MSA) phát triển với Spring Cloud

Tổng quan về JWT(JSON Web Token)

UserEntity를 UserDto로 매핑한 후 pwd 출력에 대하여

Viết

·

491

1

좋은 강의 정말 감사드립니다.

강의 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이 출력되었습니다.

제가 잘못 이해한건가요?

Kafkamsaarchitecturespring-bootspring-cloudJPA

Câu trả lời 3

3

Dowon Lee님의 프로필 이미지
Dowon Lee
Người chia sẻ kiến thức

안녕하세요, 이도원입니다. 

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로 지정해서 사용해 보시기 바랍니다.

감사합니다. 

0

저도 잘 참고합니다. ^^

0

와 저도 pwd가 null 나와서 이상하다 생각했는데 Strict으로 진행해서 그랬어요 잘 알고 갑니다:)

Hình ảnh hồ sơ của kicoker0091
kicoker0091

câu hỏi đã được viết

Đặt câu hỏi