safedb 디버깅
This commit is contained in:
+19
-9
@@ -104,6 +104,13 @@ dependencies {
|
|||||||
|
|
||||||
testRuntimeOnly 'com.h2database:h2:2.1.214'
|
testRuntimeOnly 'com.h2database:h2:2.1.214'
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
|
||||||
|
testImplementation 'ch.qos.logback:logback-classic:1.2.10'
|
||||||
|
testImplementation 'ch.qos.logback:logback-access:1.2.10'
|
||||||
|
testImplementation 'ch.qos.logback:logback-core:1.2.10'
|
||||||
|
testImplementation 'org.slf4j:jul-to-slf4j:1.7.35'
|
||||||
|
testImplementation 'org.slf4j:jcl-over-slf4j:1.7.35'
|
||||||
|
testImplementation 'org.slf4j:log4j-over-slf4j:1.7.35'
|
||||||
|
testImplementation 'org.slf4j:slf4j-api:1.7.35'
|
||||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
|
||||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.8.2'
|
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.8.2'
|
||||||
|
|
||||||
@@ -195,14 +202,17 @@ idea {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
tasks.register("safedbTest", Test) {
|
tasks.test {
|
||||||
description = "SafeDB 설치된 환경에서 동작 테스트"
|
if (project.hasProperty("safedb")) {
|
||||||
group = "verification"
|
println "======================== SafeDB Classpath applied to test task ====================="
|
||||||
|
|
||||||
testClassesDirs = sourceSets.test.output.classesDirs
|
classpath += files(
|
||||||
classPath = sourceSets.test.runtimeClasspath
|
"/safedb/JavaAPI/config/",
|
||||||
classPath += files(
|
"/safedb/JavaAPI/lib/*"
|
||||||
"/safedb/JavaAPI/config/",
|
)
|
||||||
"/safedb/JavaAPI/lib/*"
|
|
||||||
)
|
println "classpath : ${classpath}"
|
||||||
|
|
||||||
|
systemProperty "safedb", project.property("safedb")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,23 @@
|
|||||||
package com.eactive.ext.kjb.safedb.test;
|
package com.eactive.ext.kjb.safedb.test;
|
||||||
|
|
||||||
import com.eactive.ext.kjb.safedb.SafeDBWrapper;
|
import com.eactive.ext.kjb.safedb.SafeDBWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
public class SafeDbWrapperTest {
|
public class SafeDbWrapperTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void faceSafeDBTest() {
|
public void fakeSafeDBTest() {
|
||||||
log("FakeSafeDBWrapper Length Validation Start");
|
log.info("FakeSafeDBWrapper Length Validation Start");
|
||||||
|
|
||||||
|
if ("true".equalsIgnoreCase(System.getenv("safedb"))) {
|
||||||
|
log.info("실제 Safedb 테스트를 위해 테스트 종료 처리");
|
||||||
|
assertTrue("true".equalsIgnoreCase(System.getenv("safedb")));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SafeDBWrapper wrapper;
|
SafeDBWrapper wrapper;
|
||||||
try {
|
try {
|
||||||
@@ -20,13 +28,13 @@ public class SafeDbWrapperTest {
|
|||||||
throw new RuntimeException("SafeDBWrapper classloader error: " + e.getMessage(), e);
|
throw new RuntimeException("SafeDBWrapper classloader error: " + e.getMessage(), e);
|
||||||
} else {
|
} else {
|
||||||
// initialization 에러(로컬에서는 동작하지 않는다 = 정상 처리)
|
// initialization 에러(로컬에서는 동작하지 않는다 = 정상 처리)
|
||||||
log("SafeDBWrapper initialization error (expected in local environment): " + e.getMessage());
|
log.info("SafeDBWrapper initialization error (expected in local environment): " + e.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wrapper.isRealSafeDB()) {
|
if (wrapper.isRealSafeDB()) {
|
||||||
log("This test is for FakeSafeDBWrapper only. Skipping test.");
|
log.info("This test is for FakeSafeDBWrapper only. Skipping test.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +53,7 @@ public class SafeDbWrapperTest {
|
|||||||
assertEquals(originalData, decryptedData, "Decrypted data does not match original at plain length=" + len);
|
assertEquals(originalData, decryptedData, "Decrypted data does not match original at plain length=" + len);
|
||||||
|
|
||||||
// 로그 출력
|
// 로그 출력
|
||||||
log(String.format("Plain=%3d, Encrypted=%3d, Expected=%3d %s",
|
log.info(String.format("Plain=%3d, Encrypted=%3d, Expected=%3d %s",
|
||||||
len, encryptedData.length(), expectedLen,
|
len, encryptedData.length(), expectedLen,
|
||||||
(encryptedData.length() == expectedLen ? "✔" : "❌")));
|
(encryptedData.length() == expectedLen ? "✔" : "❌")));
|
||||||
|
|
||||||
@@ -55,7 +63,7 @@ public class SafeDbWrapperTest {
|
|||||||
|
|
||||||
|
|
||||||
// 암복호화 로그 출력
|
// 암복호화 로그 출력
|
||||||
log(String.format("Original: %s", originalData) +
|
log.info(String.format("Original: %s", originalData) +
|
||||||
String.format("\nEncrypted: %s", encryptedData) +
|
String.format("\nEncrypted: %s", encryptedData) +
|
||||||
String.format("\nDecrypted: %s", decryptedData) + "\n");
|
String.format("\nDecrypted: %s", decryptedData) + "\n");
|
||||||
|
|
||||||
@@ -66,6 +74,42 @@ public class SafeDbWrapperTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void safeDBTest() {
|
||||||
|
// safedb 프러퍼티가 활성화 일때만 동작
|
||||||
|
if (!"true".equalsIgnoreCase(System.getProperty("safedb"))) {
|
||||||
|
log.info("gradle : -Psafedb 일때만 동작");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SafeDBWrapper wrapper;
|
||||||
|
try {
|
||||||
|
wrapper = SafeDBWrapper.getInstance();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("SafeDBWrapper 활성화 실패");
|
||||||
|
fail();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!wrapper.isRealSafeDB()) {
|
||||||
|
log.error("실제 Safedb 로 동작하지 않음");
|
||||||
|
fail();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String value = "test";
|
||||||
|
log.info("Original : {}", value);
|
||||||
|
|
||||||
|
String encryptValue = wrapper.encryptNotRnnoString(value);
|
||||||
|
log.info("Encrypted : {}", encryptValue);
|
||||||
|
|
||||||
|
String decryptedValue = wrapper.decryptNotRnno(encryptValue);
|
||||||
|
log.info("Decrypted : {}", decryptedValue);
|
||||||
|
|
||||||
|
|
||||||
|
assertEquals(value, decryptedValue);
|
||||||
|
assertTrue(true);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 암호문 예상 길이 계산 (AES/SEED/ARIA CBC 기준, PKCS5Padding)
|
* 암호문 예상 길이 계산 (AES/SEED/ARIA CBC 기준, PKCS5Padding)
|
||||||
*/
|
*/
|
||||||
@@ -90,8 +134,4 @@ public class SafeDbWrapperTest {
|
|||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void log(String message) {
|
|
||||||
System.out.println(message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user