test 추가
This commit is contained in:
@@ -33,4 +33,5 @@ app:
|
||||
path: /home/www/owrainfo/uploads
|
||||
encryption:
|
||||
key: PIYAsB81yr7uETVoM/E7Sz9Sp5kNB46uHyjnfQE3XOs= # 운영 전용 키로 교체 필요 (base64 인코딩된 32바이트)
|
||||
|
||||
hash:
|
||||
salt: ${APP_HASH_SALT:9C4622A0E11849F94C490FCE1E6114F05BFF98FCEB5B85067F09E35ADD0D3FAB} # 반드시 환경변수로 주입 (서버에서 설정)
|
||||
@@ -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}
|
||||
|
||||
@@ -32,3 +32,5 @@ app:
|
||||
path: D:/uploads/owrawww/careers # 기본값 (프로파일별로 override)
|
||||
encryption:
|
||||
key: PIYAsB81yr7uETVoM/E7Sz9Sp5kNB46uHyjnfQE3XOs= # AES-256 키 (운영에서는 반드시 별도 키로 교체)
|
||||
hash:
|
||||
salt: ${APP_HASH_SALT:3DBD3CD58A81C407AD0D3E10515DAD7544E70911A2E43EF3A07042B102D41716} # 환경변수 우선, 없으면 기본값
|
||||
|
||||
29
src/main/resources/mapper/DataMigrationMapper.xml
Normal file
29
src/main/resources/mapper/DataMigrationMapper.xml
Normal 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) <= 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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user