test 추가

This commit is contained in:
2026-04-24 14:08:54 +09:00
parent b1bcabaf6c
commit 9095b1e7a7
18 changed files with 617 additions and 7 deletions

View File

@@ -33,4 +33,5 @@ app:
path: /home/www/owrainfo/uploads
encryption:
key: PIYAsB81yr7uETVoM/E7Sz9Sp5kNB46uHyjnfQE3XOs= # 운영 전용 키로 교체 필요 (base64 인코딩된 32바이트)
hash:
salt: ${APP_HASH_SALT:9C4622A0E11849F94C490FCE1E6114F05BFF98FCEB5B85067F09E35ADD0D3FAB} # 반드시 환경변수로 주입 (서버에서 설정)

View File

@@ -21,7 +21,10 @@ logging:
com.owrawww: WARN
org.springframework.security: WARN
app:
app:
upload:
path: /home/www/owrainfo/uploads
encryption:
key: PIYAsB81yr7uETVoM/E7Sz9Sp5kNB46uHyjnfQE3XOs= # 운영 전용 키로 교체 필요 (base64 인코딩된 32바이트)
hash:
salt: ${APP_HASH_SALT:9C4622A0E11849F94C490FCE1E6114F05BFF98FCEB5B85067F09E35ADD0D3FAB}

View File

@@ -32,3 +32,5 @@ app:
path: D:/uploads/owrawww/careers # 기본값 (프로파일별로 override)
encryption:
key: PIYAsB81yr7uETVoM/E7Sz9Sp5kNB46uHyjnfQE3XOs= # AES-256 키 (운영에서는 반드시 별도 키로 교체)
hash:
salt: ${APP_HASH_SALT:3DBD3CD58A81C407AD0D3E10515DAD7544E70911A2E43EF3A07042B102D41716} # 환경변수 우선, 없으면 기본값

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.owrawww.migration.DataMigrationMapper">
<!--
평문 레코드 판별 기준:
- 암호화된 값: AES-GCM(12바이트 IV + 데이터 + 16바이트 태그) → Base64 → 최소 약 50자 이상
- 평문 전화번호: 최대 20자 (예: 010-1234-5678)
- LENGTH(phone) <= 30 이면 아직 평문으로 판단
-->
<select id="selectPlainRecords" resultType="map">
SELECT id, phone, email
FROM application_table
WHERE LENGTH(phone) &lt;= 30
ORDER BY id
</select>
<update id="updateEncrypted">
UPDATE application_table
SET phone = #{phone},
tel_hash = #{telHash},
email = #{email},
email_hash = #{emailHash}
WHERE id = #{id}
</update>
</mapper>

View File

@@ -5,8 +5,8 @@
<mapper namespace="com.owrawww.domain.mapper.InquiryMapper">
<insert id="insert" parameterType="com.owrawww.domain.Inquiry" useGeneratedKeys="true" keyProperty="id">
INSERT INTO application_table (code, title, name, type, phone, email, comment, depth, in_date, top_code, left_code, sub_gubun, solution_gubun)
VALUES (#{code}, #{title}, #{name}, #{type}, #{tel}, #{email}, #{comment}, #{depth}, now(), #{topCode}, #{leftCode}, #{subGubun}, #{solutionGubun})
INSERT INTO application_table (code, title, name, type, phone, tel_hash, email, email_hash, comment, depth, in_date, top_code, left_code, sub_gubun, solution_gubun)
VALUES (#{code}, #{title}, #{name}, #{type}, #{tel}, #{telHash}, #{email}, #{emailHash}, #{comment}, #{depth}, now(), #{topCode}, #{leftCode}, #{subGubun}, #{solutionGubun})
</insert>
</mapper>

View File

@@ -37,3 +37,12 @@ CREATE TABLE IF NOT EXISTS inquiry (
-- BCrypt 해시값 사전 생성 필요 시 아래 INSERT 사용
-- INSERT INTO users (username, password, role, email, enabled)
-- VALUES ('admin', '$2a$10$...', 'ROLE_ADMIN', 'admin@owrawww.com', 1);
-- =====================================================================
-- [마이그레이션] tel_hash / email_hash 컬럼 추가 (솔트 해시 검색용)
-- 운영 DB에 아래 ALTER TABLE 를 직접 실행해야 합니다.
-- =====================================================================
-- ALTER TABLE application_table ADD COLUMN tel_hash VARCHAR(64) AFTER phone;
-- ALTER TABLE application_table ADD COLUMN email_hash VARCHAR(64) AFTER email;
-- CREATE INDEX idx_app_tel_hash ON application_table(tel_hash);
-- CREATE INDEX idx_app_email_hash ON application_table(email_hash);