Skip to content

Commit 455e631

Browse files
authored
Merge pull request #260 from Link-MIND/feat/#256
fix(VerifiedAdmin): oneTooneํ•„๋“œ ์ œ๊ฑฐ
2 parents 2e329e2 + 76f46f1 commit 455e631

File tree

2 files changed

+39
-13
lines changed

2 files changed

+39
-13
lines changed

โ€Žlinkmind/src/main/java/com/app/toaster/admin/entity/VerifiedAdmin.javaโ€Ž

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import lombok.Builder;
88
import lombok.Getter;
99
import lombok.NoArgsConstructor;
10+
import org.hibernate.annotations.OnDelete;
11+
import org.hibernate.annotations.OnDeleteAction;
1012

1113
import java.util.Objects;
1214

@@ -26,8 +28,9 @@ public class VerifiedAdmin {
2628
@Column
2729
private boolean authorized;
2830

29-
@OneToOne(optional = false)
30-
@JoinColumn(name="admin_id", unique=true, nullable=false, updatable=false)
31+
@ManyToOne(optional = false)
32+
@OnDelete(action = OnDeleteAction.CASCADE)
33+
@JoinColumn(name="admin_id")
3134
private ToasterAdmin admin;
3235

3336
@Builder

โ€Žlinkmind/src/main/java/com/app/toaster/admin/service/AdminService.javaโ€Ž

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import com.warrenstrange.googleauth.GoogleAuthenticatorKey;
1717
import lombok.RequiredArgsConstructor;
1818

19+
import lombok.extern.slf4j.Slf4j;
1920
import org.springframework.beans.factory.annotation.Value;
21+
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
2022
import org.springframework.security.crypto.password.PasswordEncoder;
2123
import org.springframework.stereotype.Service;
2224
import org.springframework.transaction.annotation.Transactional;
@@ -25,11 +27,12 @@
2527

2628
@Service
2729
@RequiredArgsConstructor
30+
@Slf4j
2831
public class AdminService {
2932

3033
private final UserRepository userRepository;
3134
private final JwtService jwtService;
32-
private final PasswordEncoder passwordEncoder;
35+
private final PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
3336
private final VerifiedAdminRepository verifiedAdminRepository;
3437
private final AdminRepository adminRepository;
3538
private final GoogleAuthenticator googleAuthenticator;
@@ -62,25 +65,34 @@ public VerifyNewAdminCommand registerVerifiedUser(final ToasterAdmin toasterAdmi
6265
String otpKey = null;
6366
Long id = null;
6467

68+
Optional<VerifiedAdmin> existVerifiedAdmin = verifiedAdminRepository.findByAdmin(toasterAdmin);
69+
6570
if (isNewAdmin) { //์ƒˆ๋กœ์šด ์–ด๋“œ๋ฏผ์˜ ๊ฒฝ์šฐ ๋“ฑ๋ก.
71+
log.info("๊ฐฑ์‹ ํ•ด์•ผ๋˜๋Š” ์ผ€์ด์Šค.");
72+
73+
deletePastVerify(existVerifiedAdmin);
6674

6775
GoogleAuthenticatorKey key = googleAuthenticator.createCredentials();
6876

6977
VerifiedAdmin verifiedAdmin = VerifiedAdmin.builder()
7078
.admin(toasterAdmin)
7179
.build();
7280

81+
7382
otpKey = key.getKey();
7483
verifiedAdmin.changeOtpSecretKey(otpKey);
7584

7685
id = verifiedAdminRepository.save(verifiedAdmin).getId();
7786

7887
} else { //๊ธฐ์กด ๊ฒฝ์šฐ์˜ ๊ฒฝ์šฐ๋Š” ๊ทธ๋ƒฅ ์ฐพ๊ธฐ.
88+
log.info("๊ธฐ์กด์˜ ๊ฒฝ์šฐ๋กœ ๋„˜์–ด์™”์ˆจ.");
89+
90+
if (existVerifiedAdmin.isEmpty()){
91+
throw new CustomException(Error.NOT_FOUND_USER_EXCEPTION, "์ฐพ์„ ์ˆ˜ ์—†๋Š” ์–ด๋“œ๋ฏผ ์ฆ๋ช…");
92+
}
7993

80-
VerifiedAdmin existVerifiedAdmin = verifiedAdminRepository.findByAdmin(toasterAdmin)
81-
.orElseThrow(() -> new CustomException(Error.NOT_FOUND_USER_EXCEPTION, "์ฐพ์„ ์ˆ˜ ์—†๋Š” ์–ด๋“œ๋ฏผ ์ฆ๋ช…"));
82-
id = existVerifiedAdmin.getId();
83-
otpKey = existVerifiedAdmin.getOtpSecretKey();
94+
id = existVerifiedAdmin.get().getId();
95+
otpKey = existVerifiedAdmin.get().getOtpSecretKey();
8496

8597
}
8698

@@ -94,17 +106,20 @@ public VerifyNewAdminCommand registerAdmin(String username, String password) {
94106

95107
if (adminString.equals(username)) {
96108

97-
ToasterAdmin existAdmin = findExistAdminPreVerification(username, password);
109+
ToasterAdmin existAdmin = findExistAdminPreVerification(username, password); //์•”ํ˜ธํ™” ๋œ ํŒจ์Šค์›Œ๋“œ๋กœ ์ด๋ฏธ ํ–ˆ๋˜์ ์žˆ๋Š”์ง€ ํ™•์ธ.
98110

99111
if (existAdmin != null) {
112+
log.info("์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ „ ์ด ๊ฒŒ์ž„์„ ํ•ด๋ดค์–ด์š”.");
100113
if (existAdmin.verifyLastDate()) { //๊ฒ€์ฆ๋œ ๊ฒฝ์šฐ๋ฉด ๊ฑ ์–ด๋“œ๋ฏผ์„ ๋ฆฌํ„ด.
101114
return registerVerifiedUser(existAdmin, false);
115+
}else{
116+
return registerVerifiedUser(existAdmin, true); //์•„๋‹Œ ๊ฒฝ์šฐ๋Š” ๊ฐฑ์‹ ์„ ํ•ด์•ผ๋จ.
102117
}
103-
return registerVerifiedUser(existAdmin, true);
104118
}
105119

106-
107-
String encPassword = passwordEncoder.encode(password);
120+
//id๋Š” ์•Œ๊ณ ์žˆ์Œ. Password๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ์ž ํšŒ์›๊ฐ€์ž… ์‹œํ‚ค๊ธฐ.
121+
log.info("๋””๋น„์— ์–ด๋“œ๋ฏผ์ด ์กด์žฌํ•˜์ง€์•Š์•„ ์–ด๋“œ๋ฏผ ํšŒ์›๊ฐ€์ž… ์ง„ํ–‰.");
122+
String encPassword = passwordEncoder.encode(password.toLowerCase());
108123

109124
ToasterAdmin toasterAdmin = ToasterAdmin.builder()
110125
.username(username)
@@ -116,18 +131,26 @@ public VerifyNewAdminCommand registerAdmin(String username, String password) {
116131
}
117132
throw new CustomException(Error.NOT_FOUND_USER_EXCEPTION, "์–ด๋“œ๋ฏผ์ด ์•„๋‹™๋‹ˆ๋‹ค.");
118133
}
134+
@Transactional
135+
public void deletePastVerify(Optional<VerifiedAdmin> existVerifiedAdmin){
136+
if(existVerifiedAdmin.isPresent()){
137+
verifiedAdminRepository.delete(existVerifiedAdmin.get());
138+
}
139+
}
119140

120141
public ToasterAdmin findExistAdminPreVerification(String username, String password) {
121142
Optional<ToasterAdmin> admin = adminRepository.findByUsername(username);
143+
log.info("admin์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€ password match ์ง„ํ–‰.");
122144
if (admin.isEmpty()){
123145
return null;
124146
}
125147

126-
if (passwordEncoder.matches(password, admin.get().getPassword())) {
148+
if (passwordEncoder.matches(password.toLowerCase(), admin.get().getPassword())) {
127149
return admin.get();
150+
}else{
151+
throw new CustomException(Error.NOT_FOUND_USER_EXCEPTION, "๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‹€๋ฆฝ๋‹ˆ๋‹ค.");
128152
}
129153

130-
return null; //TODO: ๋‹ค๋ฅธ ์—ฃ์ง€ ์ผ€์ด์Šค๊ฐ€ ๋” ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด๊ณ  ์—†์œผ๋ฉด ๊ฑ ๋ฐ”๋กœ ์—๋Ÿฌ throw
131154
}
132155

133156
}

0 commit comments

Comments
ย (0)