Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand All @@ -39,11 +40,11 @@ public class UserController {
private final JwtUtil jwtUtil;

@PostMapping("/signup")
public ResponseEntity<?> signup(@RequestBody UserDto userDto, BindingResult bindingResult) {
public ResponseEntity<?> signup(@Valid @RequestBody UserDto userDto,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
String errorMsg = bindingResult.getFieldError("email") != null ?
bindingResult.getFieldError("email").getDefaultMessage() :
"Invalid input";
FieldError fieldError = bindingResult.getFieldError();
String errorMsg = fieldError != null ? fieldError.getDefaultMessage() : "Invalid input";
logger.error("Sign up error: {}", errorMsg);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorMsg);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,29 @@
import com.sparta.spring_deep._delivery.domain.user.entity.UserRole;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class UserDto {

@NotBlank(message = "μ‚¬μš©μž μ•„μ΄λ””λŠ” ν•„μˆ˜ μž…λ ₯κ°’μž…λ‹ˆλ‹€.")
@Pattern(regexp = "^[a-z0-9]{4,10}$",
message = "μ‚¬μš©μž μ•„μ΄λ””λŠ” 영문 μ†Œλ¬Έμž, 숫자만 μ‚¬μš©ν•˜μ—¬ 4~10μžλ¦¬μ—¬μ•Ό ν•©λ‹ˆλ‹€.")
private String username;

@NotBlank(message = "λΉ„λ°€λ²ˆν˜ΈλŠ” ν•„μˆ˜ μž…λ ₯κ°’μž…λ‹ˆλ‹€.")
@Pattern(regexp = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,15}$",
message = "λΉ„λ°€λ²ˆν˜ΈλŠ” 8~15μžλ¦¬μ—¬μ•Ό ν•˜λ©°, 영문 λŒ€μ†Œλ¬Έμž, 숫자, 특수문자λ₯Ό 포함해야 ν•©λ‹ˆλ‹€.")
private String password;

@Email(message = "input valid e-mail form")
@NotBlank(message = "input e-mail")
@NotBlank(message = "이메일은 ν•„μˆ˜ μž…λ ₯κ°’μž…λ‹ˆλ‹€.")
@Email(message = "μ˜¬λ°”λ₯Έ 이메일 ν˜•μ‹μ΄ μ•„λ‹™λ‹ˆλ‹€.")
@Pattern(regexp = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}$",
message = "이메일 ν˜•μ‹μ΄ μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.")
// 영문 λŒ€/μ†Œλ¬Έμž, 숫자, 특수문자, '+'λŠ” μ•žμ˜ νŒ¨ν„΄μ΄ 1νšŒμ΄μƒ 반볡 / @ 기호 ν•„μˆ˜ / .은 μ‹€μ œ 점, μ˜λ¬ΈλŒ€μ†Œλ¬Έμž, 2~6자 길이 μ œν•œ, $은 λ¬Έμžμ—΄μ˜ 끝이 μ΅œμƒμœ„ 도메인인지 체크
private String email;

private UserRole role;
Expand Down