inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트 시큐리티 & JWT 강의

UserDetails 안에 dto

441

heehee

작성한 질문수 8

0

안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 궁금한 점이 생겨서 질문드립니다.

강의에서는 UserDetails를 구현할 때 내부에 엔티티 자체를 넣어주셨는데 엔티티 자체를 넣는게 엔티티를 dto로 변환 후 넣는 것보다 좋나요?

spring spring-security jwt

답변 2

0

최주호

DTO는 통신을 위해 사용하는 오브젝트입니다. 화면에 전달되는 용도입니다.
UserDetails에는 엔티티를 두면 됩니다. 굳이 DTO를 둘 이유가 없습니다.

왜냐면 UserDetails는 스프링시큐리티의 세션 영역에 저장되는 서버측 저장용도로 사용되기 때문입니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 질문 주셔서 감사합니다.

UserDetails를 구현할 때, 엔티티 자체를 UserDetails 안에 넣는 것과 DTO로 변환 후 넣는 것은 각각 장단점이 있습니다.

엔티티 자체를 UserDetails에 넣는 경우, 데이터베이스에 저장된 값을 그대로 활용할 수 있어서 편리합니다. 하지만, 엔티티에는 비즈니스 로직이 포함되어 있고, 불필요한 데이터도 포함될 수 있어서 보안상의 이슈가 발생할 수 있습니다.

반면에 DTO로 변환 후 넣는 경우, 엔티티의 필요한 필드만을 추출하여 UserDetails에 저장함으로써 불필요한 데이터를 제거할 수 있습니다. 또한, 엔티티의 비즈니스 로직을 외부로 노출시키지 않으므로 보안상의 이슈를 방지할 수 있습니다. 하지만, DTO 변환 과정이 추가로 필요하므로 번거로울 수 있습니다.

따라서, 엔티티 자체를 UserDetails에 넣을지, 아니면 DTO로 변환 후 넣을지는 해당 프로젝트의 요구사항과 보안성을 고려하여 결정하시면 됩니다.

더 궁금한 사항이 있으시면 제가 알려드릴 수 있도록 알려주세요.~요.

JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?

0

98

1

Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?

0

401

1

13:23 system.out 출력문이 다르게 나옵니다.

0

130

1

수료증 문의

0

229

2

9분대에 질문이 있습니다 !

0

115

1

password 비교를 하지 않았는데 어떻게 인증이 통과된 건가요?

0

322

1

이전 강의 참고하라는 말씀

0

253

1

강의 실습하다가 막히는 분들 참고(2024년8월 기준)

2

1116

2

구글 소셜 로그인 302

0

201

1

오류 문의 _ org.springframework.orm.jpa.JpaSystemException: could not deserialize

1

585

1

[자바] 시큐리티 Config 참고

13

953

1

이론강의

0

280

1

SpringSecurity JWT 로그인 URL 2개 설정하는 방법

0

488

1

2024.06기준) 최근 SecurityConfig 설정 문의

0

922

3

구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.

0

681

2

특정 url필터 거는 방법 이슈

0

422

1

강사님께서 말씀하시는 시큐리티세션이 SecurityContext인가요?

0

279

1

25강 마지막 테스트에서 오류

1

1044

2

jwt를 저장하는 위치에 궁금한 점이 있습니다.

0

298

1

mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데

0

698

1

세션 인증방식이 REST 원칙에 위배되는 건가요?

0

342

1

jwt와 실제데이터의 관계

1

246

1

jwt 와 세션ID의 관계

1

313

1

SecurityConfig에서 세션 설정, 인가 설정

0

422

1