
+++ src/main/java/com/takensoft/cms/loginPolicy/dao/StorageModeDAO.java
... | ... | @@ -0,0 +1,32 @@ |
1 | +package com.takensoft.cms.loginPolicy.dao; | |
2 | + | |
3 | +import com.takensoft.cms.loginPolicy.vo.StorageModeVO; | |
4 | +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; | |
5 | + | |
6 | +/** | |
7 | + * @author 하석형 | |
8 | + * @since 2025.05.30 | |
9 | + * @modification | |
10 | + * since | author | description | |
11 | + * 2025.05.30 | 하석형 | 최초 등록 | |
12 | + * | |
13 | + * 스토리지 방식 관련 DAO | |
14 | + */ | |
15 | +@Mapper("storageModeDAO") | |
16 | +public interface StorageModeDAO { | |
17 | + | |
18 | + /** | |
19 | + * @return String - 스토리지 방식 사용 여부 | |
20 | + * | |
21 | + * 스토리지 방식 조회 | |
22 | + */ | |
23 | + String findLatestStorageMode(); | |
24 | + | |
25 | + /** | |
26 | + * @param storageModeVO - 스토리지 방식 정보 | |
27 | + * @return int - 스토리지 방식 등록 결과 | |
28 | + * | |
29 | + * 스토리지 방식 등록 | |
30 | + */ | |
31 | + int save(StorageModeVO storageModeVO); | |
32 | +} |
+++ src/main/java/com/takensoft/cms/loginPolicy/service/StorageModeService.java
... | ... | @@ -0,0 +1,33 @@ |
1 | +package com.takensoft.cms.loginPolicy.service; | |
2 | + | |
3 | +import com.takensoft.cms.loginPolicy.vo.StorageModeVO; | |
4 | + | |
5 | +/** | |
6 | + * @author 하석형 | |
7 | + * @since 2025.05.30 | |
8 | + * @modification | |
9 | + * since | author | description | |
10 | + * 2025.05.30 | 하석형 | 최초 등록 | |
11 | + * | |
12 | + * 스토리지 방식 관련 인터페이스 | |
13 | + */ | |
14 | +public interface StorageModeService { | |
15 | + | |
16 | + /** | |
17 | + * | |
18 | + * @return boolean - 스토리지 방식 사용 여부 조회 | |
19 | + * | |
20 | + * 스토리지 방식 조회 | |
21 | + */ | |
22 | + public String findByStorageMode(); | |
23 | + | |
24 | + /** | |
25 | + * @param storageModeVO - 스토리지 방식 정보 | |
26 | + * @return int - 스토리지 방식 등록 결과 | |
27 | + * | |
28 | + * 스토리지 방식 등록 | |
29 | + */ | |
30 | + public int storageModeSave(StorageModeVO storageModeVO); | |
31 | + | |
32 | + | |
33 | +}(파일 끝에 줄바꿈 문자 없음) |
+++ src/main/java/com/takensoft/cms/loginPolicy/service/impl/StorageModeServiceImpl.java
... | ... | @@ -0,0 +1,87 @@ |
1 | +package com.takensoft.cms.loginPolicy.service.impl; | |
2 | + | |
3 | +import com.takensoft.cms.loginPolicy.dao.StorageModeDAO; | |
4 | +import com.takensoft.cms.loginPolicy.service.StorageModeService; | |
5 | +import com.takensoft.cms.loginPolicy.vo.StorageModeVO; | |
6 | +import com.takensoft.common.exception.CustomInsertFailException; | |
7 | +import com.takensoft.common.exception.CustomNotFoundException; | |
8 | +import com.takensoft.common.idgen.service.IdgenService; | |
9 | +import com.takensoft.common.service.VerificationService; | |
10 | +import lombok.RequiredArgsConstructor; | |
11 | +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
12 | +import org.springframework.dao.DataAccessException; | |
13 | +import org.springframework.stereotype.Service; | |
14 | + | |
15 | +/** | |
16 | + * @author 하석형 | |
17 | + * @since 2025.05.30 | |
18 | + * @modification | |
19 | + * since | author | description | |
20 | + * 2025.05.30 | 하석형 | 최초 등록 | |
21 | + * | |
22 | + * EgovAbstractServiceImpl : 전자정부 상속 | |
23 | + * StorageModeService : 스토리지 방식 관련 인터페이스 상속 | |
24 | + * | |
25 | + * 스토리지 방식 관련 인터페이스 구현체 | |
26 | + */ | |
27 | +@Service("storageModeService") | |
28 | +@RequiredArgsConstructor | |
29 | +public class StorageModeServiceImpl extends EgovAbstractServiceImpl implements StorageModeService { | |
30 | + | |
31 | + private final StorageModeDAO storageModeDAO; | |
32 | + private final IdgenService storageModeIdgn; | |
33 | + private final VerificationService verificationService; | |
34 | + | |
35 | + /** | |
36 | + * @return String - 스토리지 방식 | |
37 | + * @throws DataAccessException - db 관련 예외 발생 시 | |
38 | + * @throws Exception - 그 외 예외 발생 시 | |
39 | + * | |
40 | + * 스토리지 방식 조회 | |
41 | + */ | |
42 | + @Override | |
43 | + public String findByStorageMode() { | |
44 | + try { | |
45 | + String storageMode = storageModeDAO.findLatestStorageMode(); | |
46 | + return storageMode; | |
47 | + } catch (DataAccessException dae) { | |
48 | + throw dae; | |
49 | + } catch (Exception e) { | |
50 | + throw e; | |
51 | + } | |
52 | + } | |
53 | + | |
54 | + /** | |
55 | + * @param storageModeVO - 스토리지 방식 정보 | |
56 | + * @return int - 스토리지 방식 등록 결과 | |
57 | + * @throws CustomInsertFailException - 스토리지 방식 등록 예외 발생 시 | |
58 | + * @throws DataAccessException - db 관련 예외 발생 시 | |
59 | + * @throws Exception - 그 외 예외 발생 시 | |
60 | + * | |
61 | + * 스토리지 방식 등록 | |
62 | + */ | |
63 | + @Override | |
64 | + public int storageModeSave(StorageModeVO storageModeVO) { | |
65 | + try { | |
66 | + // 등록된 토큰에서 사용자 정보 조회 | |
67 | + String writer = verificationService.getCurrentUserId(); | |
68 | + if (writer == null || writer.isEmpty()) { | |
69 | + throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다."); | |
70 | + } | |
71 | + storageModeVO.setRgtr(writer); | |
72 | + | |
73 | + storageModeVO.setStrgModeId(storageModeIdgn.getNextStringId()); // ID 자동 생성 | |
74 | + int result = storageModeDAO.save(storageModeVO); | |
75 | + if(result == 0) { | |
76 | + throw new CustomInsertFailException("스토리지 방식 등록에 실패했습니다."); | |
77 | + } | |
78 | + | |
79 | + return result; | |
80 | + } catch (DataAccessException dae) { | |
81 | + throw dae; | |
82 | + } catch (Exception e) { | |
83 | + throw e; | |
84 | + } | |
85 | + } | |
86 | + | |
87 | +}(파일 끝에 줄바꿈 문자 없음) |
+++ src/main/java/com/takensoft/cms/loginPolicy/vo/StorageModeVO.java
... | ... | @@ -0,0 +1,27 @@ |
1 | +package com.takensoft.cms.loginPolicy.vo; | |
2 | + | |
3 | +import lombok.AllArgsConstructor; | |
4 | +import lombok.Getter; | |
5 | +import lombok.NoArgsConstructor; | |
6 | +import lombok.Setter; | |
7 | + | |
8 | +/** | |
9 | + * @author 하석형 | |
10 | + * @since 2025.05.30 | |
11 | + * @modification | |
12 | + * since | author | description | |
13 | + * 2025.05.30 | 하석형 | 최초 등록 | |
14 | + * | |
15 | + * 스토리지 방식 관련 VO | |
16 | + */ | |
17 | +@Getter | |
18 | +@Setter | |
19 | +@NoArgsConstructor | |
20 | +@AllArgsConstructor | |
21 | +public class StorageModeVO { | |
22 | + | |
23 | + private String strgModeId; // 이메일 2차 인증 ID | |
24 | + private String strgMode; // 스토리지 방식 (L: Local, S: Session) | |
25 | + private String rgtr; // 등록자 ID | |
26 | + private String regDt; // 등록일시 | |
27 | +}(파일 끝에 줄바꿈 문자 없음) |
--- src/main/java/com/takensoft/cms/loginPolicy/web/LoginPolicyController.java
+++ src/main/java/com/takensoft/cms/loginPolicy/web/LoginPolicyController.java
... | ... | @@ -3,9 +3,11 @@ |
3 | 3 |
import com.takensoft.cms.loginPolicy.service.Email2ndAuthService; |
4 | 4 |
import com.takensoft.cms.loginPolicy.service.LoginModeService; |
5 | 5 |
import com.takensoft.cms.loginPolicy.service.LoginPolicyService; |
6 |
+import com.takensoft.cms.loginPolicy.service.StorageModeService; |
|
6 | 7 |
import com.takensoft.cms.loginPolicy.vo.Email2ndAuthVO; |
7 | 8 |
import com.takensoft.cms.loginPolicy.vo.LoginModeVO; |
8 | 9 |
import com.takensoft.cms.loginPolicy.vo.LoginPolicyVO; |
10 |
+import com.takensoft.cms.loginPolicy.vo.StorageModeVO; |
|
9 | 11 |
import com.takensoft.cms.mber.vo.MberVO; |
10 | 12 |
import com.takensoft.cms.token.service.RefreshTokenService; |
11 | 13 |
import com.takensoft.common.message.MessageCode; |
... | ... | @@ -33,6 +35,7 @@ |
33 | 35 |
* since | author | description |
34 | 36 |
* 2025.03.22 | 김혜민 | 최초 등록 |
35 | 37 |
* 2025.05.27 | 하석형 | findByEmail2ndAuth, saveEmail2ndAuth 추가 |
38 |
+ * 2025.05.30 | 하석형 | findByStorageMode, saveStorageMode 추가 |
|
36 | 39 |
* |
37 | 40 |
* 로그인정책 관련 컨트롤러 |
38 | 41 |
*/ |
... | ... | @@ -50,6 +53,7 @@ |
50 | 53 |
private final RedisTemplate<String, String> redisTemplate; |
51 | 54 |
private final RefreshTokenService refreshTokenService; |
52 | 55 |
private final Email2ndAuthService email2ndAuth; |
56 |
+ private final StorageModeService storageMode; |
|
53 | 57 |
|
54 | 58 |
/** |
55 | 59 |
* |
... | ... | @@ -189,4 +193,29 @@ |
189 | 193 |
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS); |
190 | 194 |
} |
191 | 195 |
|
196 |
+ /** |
|
197 |
+ * @return ResponseEntity - 스토리지 방식 조회 결과를 포함하는 응답 |
|
198 |
+ * |
|
199 |
+ * 스토리지 방식 조회 |
|
200 |
+ */ |
|
201 |
+ @PostMapping("/findByStorageMode.json") |
|
202 |
+ public ResponseEntity<?> findByStorageMode() { |
|
203 |
+ String result = storageMode.findByStorageMode(); |
|
204 |
+ |
|
205 |
+ return resUtil.successRes(result, MessageCode.COMMON_SUCCESS); |
|
206 |
+ } |
|
207 |
+ |
|
208 |
+ /** |
|
209 |
+ * @param storageModeVO - 스토리지 방식 정보 |
|
210 |
+ * @return ResponseEntity - 스토리지 방식 등록 결과를 포함하는 응답 |
|
211 |
+ * |
|
212 |
+ * 스토리지 방식 등록 |
|
213 |
+ */ |
|
214 |
+ @PostMapping("/saveStorageMode.json") |
|
215 |
+ public ResponseEntity<?> saveStorageMode(@RequestBody StorageModeVO storageModeVO) { |
|
216 |
+ int result = storageMode.storageModeSave(storageModeVO); |
|
217 |
+ |
|
218 |
+ return resUtil.successRes(result, MessageCode.COMMON_SUCCESS); |
|
219 |
+ } |
|
220 |
+ |
|
192 | 221 |
} |
--- src/main/java/com/takensoft/common/idgen/context/ContextIdgen.java
+++ src/main/java/com/takensoft/common/idgen/context/ContextIdgen.java
... | ... | @@ -190,7 +190,7 @@ |
190 | 190 |
return idgenServiceImpl; |
191 | 191 |
} |
192 | 192 |
|
193 |
- // 이메일 2차 인증 관리 |
|
193 |
+ // 이메일 2차 인증 |
|
194 | 194 |
@Bean(name = "eml2ndAuthIdgn") |
195 | 195 |
public IdgenService eml2ndAuthIdgn() { |
196 | 196 |
IdgenService idgenServiceImpl = new IdgenService(); |
... | ... | @@ -200,4 +200,15 @@ |
200 | 200 |
idgenServiceImpl.setTblNm("EML_2ND_AUTH_ID"); |
201 | 201 |
return idgenServiceImpl; |
202 | 202 |
} |
203 |
+ |
|
204 |
+ // 스토리지 방식 |
|
205 |
+ @Bean(name = "storageModeIdgn") |
|
206 |
+ public IdgenService storageModeIdgn() { |
|
207 |
+ IdgenService idgenServiceImpl = new IdgenService(); |
|
208 |
+ idgenServiceImpl.setCipers(15); |
|
209 |
+ idgenServiceImpl.setFillChar('0'); |
|
210 |
+ idgenServiceImpl.setPrefix("STORAGE_MODE_"); |
|
211 |
+ idgenServiceImpl.setTblNm("STORAGE_MODE_ID"); |
|
212 |
+ return idgenServiceImpl; |
|
213 |
+ } |
|
203 | 214 |
}(파일 끝에 줄바꿈 문자 없음) |
+++ src/main/resources/mybatis/mapper/loginPolicy/storageMode-SQL.xml
... | ... | @@ -0,0 +1,42 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | +<!-- | |
4 | + 작성자 : 하석형 | |
5 | + 작성일 : 2025.05.30 | |
6 | + 내 용 : 스토리지 방식 관련 | |
7 | +--> | |
8 | +<mapper namespace="com.takensoft.cms.loginPolicy.dao.StorageModeDAO"> | |
9 | + | |
10 | + <!-- | |
11 | + 작성자 : 하석형 | |
12 | + 작성일 : 2025.05.30 | |
13 | + 내 용 : 스토리지 방식 최신값 조회 | |
14 | + --> | |
15 | + <select id="findLatestStorageMode" resultType="String"> | |
16 | + SELECT strg_mode | |
17 | + FROM strg_mode_hstry | |
18 | + ORDER BY reg_dt DESC | |
19 | + LIMIT 1 | |
20 | + </select> | |
21 | + | |
22 | + <!-- | |
23 | + 작성자 : 하석형 | |
24 | + 작성일 : 2025.05.30 | |
25 | + 내 용 : 스토리지 방식 등록 | |
26 | + --> | |
27 | + <insert id="save" parameterType="StorageModeVO"> | |
28 | + INSERT INTO strg_mode_hstry ( | |
29 | + strg_mode_id, | |
30 | + strg_mode, | |
31 | + rgtr, | |
32 | + reg_dt | |
33 | + ) | |
34 | + VALUES ( | |
35 | + #{strgModeId}, | |
36 | + #{strgMode}, | |
37 | + #{rgtr}, | |
38 | + NOW() | |
39 | + ) | |
40 | + </insert> | |
41 | + | |
42 | +</mapper>(파일 끝에 줄바꿈 문자 없음) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?