-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathAdminService.java
More file actions
51 lines (42 loc) · 1.92 KB
/
AdminService.java
File metadata and controls
51 lines (42 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.listywave.admin;
import static com.listywave.common.exception.ErrorCode.INVALID_ACCESS;
import com.listywave.auth.application.domain.JwtManager;
import com.listywave.common.encrypt.Sha256Cipher;
import com.listywave.common.exception.CustomException;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
@RequiredArgsConstructor
public class AdminService {
private final JwtManager jwtManager;
private final Sha256Cipher sha256Cipher;
private final AdminRepository adminRepository;
@Transactional(readOnly = true)
public boolean isValidIp(String ip) {
return adminRepository.existsByIp(ip);
}
@Transactional(readOnly = true)
public AdminLoginResponse login(String account, String password) {
Optional<Admin> optionalAdmin = adminRepository.findByAccount(account);
if (optionalAdmin.isPresent()) {
Admin admin = optionalAdmin.get();
// 암호화 적용으로 인해, 임시로 작성해둔 코드입니다.
// 모든 어드민이 암호를 변경하면 if 조건식만 제거합니다.
if (!password.equals("1234")) {
admin.validatePassword(sha256Cipher.encrypt(password)); // 해당 라인은 제거하지 않습니다.
}
String accessToken = jwtManager.createAdminAccessToken(admin.getId());
String refreshToken = jwtManager.createAdminRefreshToken(admin.getId());
return new AdminLoginResponse(accessToken, refreshToken);
}
throw new CustomException(INVALID_ACCESS);
}
public void update(Long adminId, String password) {
Admin admin = adminRepository.getById(adminId);
String encryptedNewPassword = sha256Cipher.encrypt(password);
admin.update(encryptedNewPassword);
}
}