From db18445323b950ba4fa7924daacd4054338b5b26 Mon Sep 17 00:00:00 2001 From: yxhwxn Date: Tue, 30 Jul 2024 00:52:23 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EC=8B=9C=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/controller/dto/MemberRequestDTO.java | 2 +- .../service/command/MemberCommandServiceImpl.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/cmc/suppin/member/controller/dto/MemberRequestDTO.java b/src/main/java/com/cmc/suppin/member/controller/dto/MemberRequestDTO.java index 8b21f69..91b4604 100644 --- a/src/main/java/com/cmc/suppin/member/controller/dto/MemberRequestDTO.java +++ b/src/main/java/com/cmc/suppin/member/controller/dto/MemberRequestDTO.java @@ -22,7 +22,7 @@ public static class JoinDTO { private String name; @NotBlank(message = "비밀번호를 입력해주세요") - @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,16}", message = "비밀번호는 8~16자 영문, 숫자, 특수문자를 사용하세요.") + @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,20}", message = "비밀번호는 8~20자 영문, 숫자, 특수문자를 사용하세요.") private String password; @NotBlank(message = "이메일을 입력해주세요") diff --git a/src/main/java/com/cmc/suppin/member/service/command/MemberCommandServiceImpl.java b/src/main/java/com/cmc/suppin/member/service/command/MemberCommandServiceImpl.java index 64caa7c..e5223fb 100644 --- a/src/main/java/com/cmc/suppin/member/service/command/MemberCommandServiceImpl.java +++ b/src/main/java/com/cmc/suppin/member/service/command/MemberCommandServiceImpl.java @@ -33,6 +33,12 @@ public Member join(MemberRequestDTO.JoinDTO request) { throw new IllegalArgumentException("이미 존재하는 유저입니다."); } + // 비밀번호 조건 검증 + String password = request.getPassword(); + if (!isValidPassword(password)) { + throw new IllegalArgumentException("비밀번호는 8~20자 영문, 숫자, 특수문자를 사용해야 합니다."); + } + // DTO를 Entity로 변환 Member member = memberConverter.toEntity(request, bCryptPasswordEncoder); @@ -42,6 +48,11 @@ public Member join(MemberRequestDTO.JoinDTO request) { return member; } + // 비밀번호 조건 검증 메서드 + private boolean isValidPassword(String password) { + return password.matches("(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,20}"); + } + /** * ID 중복 확인 */