From a7e807cba5997a78e6846ba332308b4d53d644c5 Mon Sep 17 00:00:00 2001 From: bjkim Date: Mon, 4 Aug 2025 14:58:30 +0900 Subject: [PATCH] =?UTF-8?q?[UPDATE]=20signup=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jwt/controllers/AuthController.java | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/src/main/java/kr/re/etri/security/jwt/controllers/AuthController.java b/src/main/java/kr/re/etri/security/jwt/controllers/AuthController.java index 01e5e4a..782ae4e 100644 --- a/src/main/java/kr/re/etri/security/jwt/controllers/AuthController.java +++ b/src/main/java/kr/re/etri/security/jwt/controllers/AuthController.java @@ -109,46 +109,44 @@ public class AuthController { @PostMapping("/signup") public ResponseEntity registerUser(@Valid @RequestBody SignupRequest signUpRequest) { if (userRepository.existsByUsername(signUpRequest.getUsername())) { - return ResponseEntity.badRequest().body(new MessageResponse("Error: Username is already taken!")); + return ResponseEntity.badRequest().body(new MessageResponse("오류: 이미 사용 중인 사용자 이름입니다.")); } if (userRepository.existsByEmail(signUpRequest.getEmail())) { - return ResponseEntity.badRequest().body(new MessageResponse("Error: Email is already in use!")); + return ResponseEntity.badRequest().body(new MessageResponse("오류: 이미 사용 중인 이메일입니다.")); } - User user = new User(signUpRequest.getUsername(), signUpRequest.getEmail(), - encoder.encode(signUpRequest.getPassword())); + User user = new User( + signUpRequest.getUsername(), + signUpRequest.getEmail(), + encoder.encode(signUpRequest.getPassword()) + ); Set strRoles = signUpRequest.getRole(); Set roles = new HashSet<>(); - if (strRoles == null) { - Role userRole = roleRepository.findByName(ERole.ROLE_USER) - .orElseThrow(() -> new RuntimeException("Error: Role is not found.")); - roles.add(userRole); - } else { - strRoles.forEach(role -> { - switch (role) { - case "admin": - roles.add(roleRepository.findByName(ERole.ROLE_ADMIN) - .orElseThrow(() -> new RuntimeException("Error: Role is not found."))); - break; - case "mod": - roles.add(roleRepository.findByName(ERole.ROLE_MODERATOR) - .orElseThrow(() -> new RuntimeException("Error: Role is not found."))); - break; - default: - roles.add(roleRepository.findByName(ERole.ROLE_USER) - .orElseThrow(() -> new RuntimeException("Error: Role is not found."))); - } - }); + if (strRoles == null || strRoles.isEmpty()) { + strRoles = Set.of("ROLE_USER"); + } + + for (String roleName : strRoles) { + try { + ERole eRole = ERole.valueOf(roleName); + Role role = roleRepository.findByName(eRole) + .orElseThrow(() -> new RuntimeException("오류: '" + roleName + "' 역할이 DB에 존재하지 않습니다.")); + roles.add(role); + } catch (IllegalArgumentException e) { + return ResponseEntity.badRequest().body(new MessageResponse("오류: '" + roleName + "' 역할은 유효하지 않습니다.")); + } } user.setRoles(roles); userRepository.save(user); - return ResponseEntity.ok(new MessageResponse("User registered successfully!")); + return ResponseEntity.ok(new MessageResponse("사용자 등록이 완료되었습니다.")); } + + @Operation(summary = "로그아웃", description = "현재 사용자를 로그아웃하고 쿠키 및 리프레시 토큰을 삭제합니다.") @ApiResponses({ @ApiResponse(responseCode = "200", description = "로그아웃 성공")