Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] refactor: 모임 주소 정보 요청 및 저장 방식 변경 #283

Merged
merged 4 commits into from
Aug 4, 2024

Conversation

J-I-H-O
Copy link
Contributor

@J-I-H-O J-I-H-O commented Aug 2, 2024

이슈

개발 사항

  • 주소 정보를 (도,광역시,특별시)/(시군구)/(읍면동) 으로 구분
  • 참여 가능 모임 여부 로직의 논리적 오류 hotfix
  • 역직렬화 과정에서 FriendoglyException의 default message가 그대로 노출되는 현상 수정

전달 사항

  • 문제상황
    • request 로 들어온 Gender, SizeType을 도메인 객체로 역직렬화하는 과정에서 오타가 입력되면 FriendoglyException 이 발생해야 합니다. 하지만 FriendoglyException 이 아닌, bean validation의 @NotEmpty에 걸리는 현상을 확인했습니다.
    • 이러한 이유로, 에러 객체의 detail에 default message가 그대로 노출되는 취약점이 발견되었습니다.
  • 원인
    • 역직렬화 과정에서 예외가 발생하면 Set이 정상적으로 초기화되지 않기 때문에 발생하는 현상이었습니다.
  • 대처
    • 이에 따라 request DTO에서 Gender, SizeType을 바로 받는 것이 아니라, String으로 입력 받도록 변경했습니다.
    • 역직렬화 과정에서 예외가 발생하지 않고, 이후 사용할 때 예외가 발생하게 됩니다.

J-I-H-O and others added 4 commits August 2, 2024 14:15
Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com>
Co-authored-by: jimi567 <repday0609@gmail.com>
Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com>
Co-authored-by: jimi567 <repday0609@gmail.com>
Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com>
Co-authored-by: jimi567 <repday0609@gmail.com>
Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com>
Co-authored-by: jimi567 <repday0609@gmail.com>
@J-I-H-O J-I-H-O added 🐞 bug 버그 수정 🛠️ refactor 리팩터링 🖥 backend backend labels Aug 2, 2024
@J-I-H-O J-I-H-O requested review from takoyakimchi and ehtjsv2 August 2, 2024 07:19
Copy link

github-actions bot commented Aug 2, 2024

Unit Test Results

114 tests   114 ✔️  7s ⏱️
  24 suites      0 💤
  24 files        0

Results for commit 45d1194.

Copy link
Contributor

@takoyakimchi takoyakimchi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굿입니다!!

Comment on lines +19 to +23
@Column(name = "city", nullable = false)
private String city;

@Column(name = "village", nullable = false)
private String village;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment on lines +21 to +24
public static Set<SizeType> toSizeTypes(Set<String> sizeType) {
return sizeType.stream()
.map(SizeType::toSizeType)
.collect(Collectors.toSet());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public static Set<SizeType> toSizeTypes(Set<String> sizeType) {
return sizeType.stream()
.map(SizeType::toSizeType)
.collect(Collectors.toSet());
public static Set<SizeType> toSizeTypes(Set<String> sizeType) {
return sizeType.stream()
.map(SizeType::toSizeType)
.collect(Collectors.toUnmodifiableSet());

불변 set으로 리턴하는 건 어떨까요?!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

놓친 부분이네요 approve 주셔서 추후에 수정하겠습니다.

Copy link
Contributor

@ehtjsv2 ehtjsv2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리팩터라 크게 문제될만한 부분은 안보이네요!
enum을 request로 받을 때, 나머지 다른 요청들(있을 지는 모르겠음)도 string으로 받아야하는 부분일까요?

@jimi567 jimi567 merged commit 286f333 into develop Aug 4, 2024
3 checks passed
@J-I-H-O J-I-H-O deleted the refactor/club-address branch August 5, 2024 02:07
takoyakimchi pushed a commit that referenced this pull request Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🖥 backend backend 🐞 bug 버그 수정 🛠️ refactor 리팩터링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

모임 주소 정보 요청 및 저장 방식 변경
4 participants