# 0715 변경사항
대상 프로젝트: target-spring-oracle
생성 시각: 2026-07-15 09:34:26
범위: target/local-json/scenario-store 제외, 현재 소스 및 설정 파일 원문 전체
------------------------------
파일명: target-spring-oracle/pom.xml
상태: M
크기: 2929 bytes
------------------------------
내용
------------------------------
4.0.0
com.samsung
crypt-dynamic-verify-target
1.0.0
jar
17
3.3.6
3.0.4
org.springframework.boot
spring-boot-dependencies
${spring.boot.version}
pom
import
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
${mybatis.spring.boot.version}
com.oracle.database.jdbc
ojdbc11
23.5.0.24.07
p6spy
p6spy
3.9.1
org.springframework.boot
spring-boot-starter-validation
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
${spring.boot.version}
org.apache.maven.plugins
maven-compiler-plugin
3.13.0
${java.version}
${java.version}
UTF-8
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/customer/CustomerController.java
상태: clean
크기: 755 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.customer;
import java.util.Map;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/customers")
public class CustomerController {
private final CustomerMapper customerMapper;
public CustomerController(CustomerMapper customerMapper) {
this.customerMapper = customerMapper;
}
@PostMapping
public Map
insert(@RequestBody CustomerDto customer) {
return Map.of("inserted", customerMapper.insertCustomer(customer));
}
@GetMapping("/by-name-hash")
public CustomerDto selectByNameHash(@RequestParam("customerName") String customerName) {
return customerMapper.selectCustomerByNameHash(customerName);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/customer/CustomerDto.java
상태: clean
크기: 972 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.customer;
public class CustomerDto {
private String customerId;
private String customerName;
private String address;
private String gradeCode;
private String verificationRunId;
public String getCustomerId() { return customerId; }
public void setCustomerId(String customerId) { this.customerId = customerId; }
public String getCustomerName() { return customerName; }
public void setCustomerName(String customerName) { this.customerName = customerName; }
public String getAddress() { return address; }
public void setAddress(String address) { this.address = address; }
public String getGradeCode() { return gradeCode; }
public void setGradeCode(String gradeCode) { this.gradeCode = gradeCode; }
public String getVerificationRunId() { return verificationRunId; }
public void setVerificationRunId(String verificationRunId) { this.verificationRunId = verificationRunId; }
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/customer/CustomerMapper.java
상태: clean
크기: 490 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.customer;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface CustomerMapper {
int insertCustomer(CustomerDto customer);
int updateCustomer(CustomerDto customer);
CustomerDto selectCustomerByNameHash(@Param("customerName") String customerName);
List selectCustomerGroupByName(Map condition);
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/order/OrderController.java
상태: clean
크기: 718 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.order;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/orders")
public class OrderController {
private final OrderMapper orderMapper;
public OrderController(OrderMapper orderMapper) {
this.orderMapper = orderMapper;
}
@PostMapping
public Map insert(@RequestBody OrderDto order) {
return Map.of("inserted", orderMapper.insertOrder(order));
}
@GetMapping("/by-buyer-join")
public List selectJoin(@RequestParam("buyerName") String buyerName) {
return orderMapper.selectOrdersByBuyerJoin(buyerName);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/order/OrderDto.java
상태: clean
크기: 938 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.order;
import java.math.BigDecimal;
public class OrderDto {
private String orderId;
private String userId;
private String buyerName;
private BigDecimal amount;
private String verificationRunId;
public String getOrderId() { return orderId; }
public void setOrderId(String orderId) { this.orderId = orderId; }
public String getUserId() { return userId; }
public void setUserId(String userId) { this.userId = userId; }
public String getBuyerName() { return buyerName; }
public void setBuyerName(String buyerName) { this.buyerName = buyerName; }
public BigDecimal getAmount() { return amount; }
public void setAmount(BigDecimal amount) { this.amount = amount; }
public String getVerificationRunId() { return verificationRunId; }
public void setVerificationRunId(String verificationRunId) { this.verificationRunId = verificationRunId; }
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/order/OrderMapper.java
상태: clean
크기: 323 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.order;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface OrderMapper {
int insertOrder(OrderDto order);
List selectOrdersByBuyerJoin(@Param("buyerName") String buyerName);
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/user/UserController.java
상태: clean
크기: 1473 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.user;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserMapper userMapper;
public UserController(UserMapper userMapper) {
this.userMapper = userMapper;
}
// 운영 API 샘플: Vue/TypeScript에서 평문을 보내면 MyBatis TypeHandler가 암호화/해시 저장을 수행한다.
@PostMapping
public Map insert(@RequestBody UserDto user) {
userMapper.insertUser(user);
return Map.of("inserted", true, "userId", user.getUserId());
}
@PutMapping("/{userId}")
public Map update(@PathVariable("userId") String userId, @RequestBody UserDto user) {
user.setUserId(userId);
return Map.of("updated", userMapper.updateUserDynamic(user));
}
@GetMapping("/{userId}/plain-select")
public UserDto selectPlainColumn(@PathVariable("userId") String userId) {
return userMapper.selectUserPlainColumn(userId);
}
@GetMapping("/by-name-hash")
public UserDto selectByNameHash(@RequestParam("userName") String userName) {
return userMapper.selectUserByNameHash(userName);
}
@PostMapping("/batch")
public Map batch(@RequestBody List users) {
return Map.of("inserted", userMapper.batchInsertUsers(users));
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/user/UserDto.java
상태: clean
크기: 866 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.user;
public class UserDto {
private String userId;
private String userName;
private String phone;
private String email;
private String verificationRunId;
public String getUserId() { return userId; }
public void setUserId(String userId) { this.userId = userId; }
public String getUserName() { return userName; }
public void setUserName(String userName) { this.userName = userName; }
public String getPhone() { return phone; }
public void setPhone(String phone) { this.phone = phone; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getVerificationRunId() { return verificationRunId; }
public void setVerificationRunId(String verificationRunId) { this.verificationRunId = verificationRunId; }
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/business/user/UserMapper.java
상태: clean
크기: 666 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.business.user;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper {
int insertUser(UserDto user);
int batchInsertUsers(@Param("list") List users);
int updateUserDynamic(UserDto user);
int mergeUser(UserDto user);
UserDto selectUserPlainColumn(@Param("userId") String userId);
UserDto selectUserByNameHash(@Param("userName") String userName);
List selectUsersDynamic(Map condition);
int deleteUserByNameHash(@Param("userName") String userName);
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/CryptDynamicVerifyApplication.java
상태: clean
크기: 438 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.samsung.cryptverify")
public class CryptDynamicVerifyApplication {
public static void main(String[] args) {
SpringApplication.run(CryptDynamicVerifyApplication.class, args);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/AddressEncryptTypeHandler.java
상태: clean
크기: 115 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
public class AddressEncryptTypeHandler extends NameEncryptTypeHandler {
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/AddressHashTypeHandler.java
상태: clean
크기: 109 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
public class AddressHashTypeHandler extends NameHashTypeHandler {
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/CryptoProperties.java
상태: clean
크기: 420 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "crypto")
public class CryptoProperties {
private String key;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/CryptoSupport.java
상태: clean
크기: 2262 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.springframework.stereotype.Component;
@Component
public class CryptoSupport {
private final SecretKeySpec keySpec;
public CryptoSupport(CryptoProperties properties) {
byte[] digest = sha256Bytes(properties.getKey());
this.keySpec = new SecretKeySpec(Arrays.copyOf(digest, 16), "AES");
}
// 검증 샘플을 단순하게 재현하기 위해 결정적 AES/ECB를 사용한다. 운영에서는 GCM/CBC+IV와 키 관리 체계를 적용해야 한다.
public String encrypt(String plainText) {
if (plainText == null) {
return null;
}
try {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
return Base64.getEncoder().encodeToString(cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8)));
} catch (Exception e) {
throw new IllegalStateException("암호화 실패", e);
}
}
public String decrypt(String cipherText) {
if (cipherText == null) {
return null;
}
try {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
return new String(cipher.doFinal(Base64.getDecoder().decode(cipherText)), StandardCharsets.UTF_8);
} catch (Exception e) {
throw new IllegalStateException("복호화 실패", e);
}
}
public String hash(String plainText) {
if (plainText == null) {
return null;
}
return Base64.getEncoder().encodeToString(sha256Bytes(plainText + "|search|" + Base64.getEncoder().encodeToString(keySpec.getEncoded())));
}
private static byte[] sha256Bytes(String value) {
try {
return MessageDigest.getInstance("SHA-256").digest(value.getBytes(StandardCharsets.UTF_8));
} catch (Exception e) {
throw new IllegalStateException("해시 생성 실패", e);
}
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/NameEncryptTypeHandler.java
상태: clean
크기: 1528 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
public class NameEncryptTypeHandler extends BaseTypeHandler {
// 이름 컬럼의 setParameter 암호화와 getResult 복호화를 수행하고 호출 횟수를 기록한다.
@Override
public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
SpringContext.getBean(TypeHandlerCallRegistry.class).markSetParameter(getClass().getSimpleName());
ps.setString(i, SpringContext.getBean(CryptoSupport.class).encrypt(parameter));
}
@Override
public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
return decrypt(rs.getString(columnName));
}
@Override
public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return decrypt(rs.getString(columnIndex));
}
@Override
public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return decrypt(cs.getString(columnIndex));
}
private String decrypt(String value) {
SpringContext.getBean(TypeHandlerCallRegistry.class).markGetResult(getClass().getSimpleName());
return value == null ? null : SpringContext.getBean(CryptoSupport.class).decrypt(value);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/NameHashTypeHandler.java
상태: clean
크기: 1572 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
public class NameHashTypeHandler extends BaseTypeHandler {
// 검색용 HASH 컬럼에 평문을 결정적 해시값으로 변환해서 바인딩한다. HASH는 복호화하지 않는다.
@Override
public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
SpringContext.getBean(TypeHandlerCallRegistry.class).markSetParameter(getClass().getSimpleName());
ps.setString(i, SpringContext.getBean(CryptoSupport.class).hash(parameter));
}
@Override
public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
SpringContext.getBean(TypeHandlerCallRegistry.class).markGetResult(getClass().getSimpleName());
return rs.getString(columnName);
}
@Override
public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
SpringContext.getBean(TypeHandlerCallRegistry.class).markGetResult(getClass().getSimpleName());
return rs.getString(columnIndex);
}
@Override
public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
SpringContext.getBean(TypeHandlerCallRegistry.class).markGetResult(getClass().getSimpleName());
return cs.getString(columnIndex);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/PhoneEncryptTypeHandler.java
상태: clean
크기: 113 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
public class PhoneEncryptTypeHandler extends NameEncryptTypeHandler {
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/PhoneHashTypeHandler.java
상태: clean
크기: 107 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
public class PhoneHashTypeHandler extends NameHashTypeHandler {
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/SpringContext.java
상태: clean
크기: 562 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContext implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
context = applicationContext;
}
public static T getBean(Class type) {
return context.getBean(type);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/crypto/TypeHandlerCallRegistry.java
상태: clean
크기: 1243 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.crypto;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import org.springframework.stereotype.Component;
@Component
public class TypeHandlerCallRegistry {
private final Map setParameterCounts = new ConcurrentHashMap<>();
private final Map getResultCounts = new ConcurrentHashMap<>();
// 검증 실행 전 TypeHandler 호출 횟수를 초기화한다.
public void reset() {
setParameterCounts.clear();
getResultCounts.clear();
}
public void markSetParameter(String handlerName) {
setParameterCounts.computeIfAbsent(handlerName, key -> new AtomicInteger()).incrementAndGet();
}
public void markGetResult(String handlerName) {
getResultCounts.computeIfAbsent(handlerName, key -> new AtomicInteger()).incrementAndGet();
}
public int getSetParameterCount(String handlerName) {
return setParameterCounts.getOrDefault(handlerName, new AtomicInteger()).get();
}
public int getGetResultCount(String handlerName) {
return getResultCounts.getOrDefault(handlerName, new AtomicInteger()).get();
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/verification/controller/CommonExceptionHandler.java
상태: clean
크기: 843 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.verification.controller;
import java.time.LocalDateTime;
import java.util.LinkedHashMap;
import java.util.Map;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@RestControllerAdvice
public class CommonExceptionHandler {
// 검증 API에서 발생한 예외를 공통 JSON으로 변환한다.
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Map handle(Exception e) {
Map response = new LinkedHashMap();
response.put("timestamp", LocalDateTime.now().toString());
response.put("result", "FAIL");
response.put("message", e.getMessage() == null ? e.getClass().getSimpleName() : e.getMessage());
return response;
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/verification/controller/CryptoVerificationController.java
상태: clean
크기: 3856 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.verification.controller;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.samsung.cryptverify.verification.dto.CryptoTargetDto;
import com.samsung.cryptverify.verification.dto.ScenarioDefinition;
import com.samsung.cryptverify.verification.dto.VerificationResultDto;
import com.samsung.cryptverify.verification.dto.VerificationRunRequest;
import com.samsung.cryptverify.verification.engine.CryptoTargetStore;
import com.samsung.cryptverify.verification.engine.CryptoVerificationService;
@RestController
@RequestMapping("/crypto-verify")
@CrossOrigin(originPatterns = {"http://localhost:1234", "http://127.0.0.1:1234"})
public class CryptoVerificationController {
private static final Logger log = LoggerFactory.getLogger(CryptoVerificationController.class);
private final CryptoVerificationService verificationService;
private final CryptoTargetStore targetStore;
public CryptoVerificationController(
CryptoVerificationService verificationService,
CryptoTargetStore targetStore
) {
this.verificationService = verificationService;
this.targetStore = targetStore;
}
@PostMapping("/run")
public VerificationResultDto run(@RequestBody VerificationRunRequest request) {
Map safeOverrides = request == null || request.getOverrides() == null
? new LinkedHashMap()
: request.getOverrides();
log.info("[CryptoVerify][REQUEST] run all verificationRunId={}", safeOverrides.get("verificationRunId"));
VerificationResultDto result = verificationService.runAll(request == null ? null : request.getScenarios(), safeOverrides);
log.info("[CryptoVerify][RESPONSE] run all status={} progress={} elapsedMs={}", result.getStatus(), result.getProgress(), result.getElapsedMs());
return result;
}
@PostMapping("/run/{scenarioId}")
public VerificationResultDto runSingle(
@PathVariable Map pathVariables,
@RequestBody VerificationRunRequest request
) {
String scenarioId = pathVariables.get("scenarioId");
Map safeOverrides = request == null || request.getOverrides() == null
? new LinkedHashMap()
: request.getOverrides();
ScenarioDefinition scenario = request == null ? null : request.getScenario();
if (scenario != null && scenarioId != null && !scenarioId.equals(scenario.getScenarioId())) {
throw new IllegalArgumentException("Path scenarioId and request scenarioId do not match.");
}
log.info("[CryptoVerify][REQUEST] run single scenarioId={} verificationRunId={}", scenarioId, safeOverrides.get("verificationRunId"));
VerificationResultDto result = verificationService.runSingle(scenario, safeOverrides);
log.info("[CryptoVerify][RESPONSE] run single scenarioId={} status={} elapsedMs={}", scenarioId, result.getStatus(), result.getElapsedMs());
return result;
}
@GetMapping("/targets")
public List targets() {
return targetStore.findAll();
}
@PostMapping("/targets")
public List saveTargets(@RequestBody List targets) {
return targetStore.replaceAll(targets);
}
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/verification/dto/CryptoTargetDto.java
상태: clean
크기: 1380 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.verification.dto;
public class CryptoTargetDto {
private String tableName;
private String plainColumn;
private String encColumn;
private String hashColumn;
private String javaProperty;
private String encryptTypeHandler;
private String hashTypeHandler;
public String getTableName() { return tableName; }
public void setTableName(String tableName) { this.tableName = tableName; }
public String getPlainColumn() { return plainColumn; }
public void setPlainColumn(String plainColumn) { this.plainColumn = plainColumn; }
public String getEncColumn() { return encColumn; }
public void setEncColumn(String encColumn) { this.encColumn = encColumn; }
public String getHashColumn() { return hashColumn; }
public void setHashColumn(String hashColumn) { this.hashColumn = hashColumn; }
public String getJavaProperty() { return javaProperty; }
public void setJavaProperty(String javaProperty) { this.javaProperty = javaProperty; }
public String getEncryptTypeHandler() { return encryptTypeHandler; }
public void setEncryptTypeHandler(String encryptTypeHandler) { this.encryptTypeHandler = encryptTypeHandler; }
public String getHashTypeHandler() { return hashTypeHandler; }
public void setHashTypeHandler(String hashTypeHandler) { this.hashTypeHandler = hashTypeHandler; }
}
------------------------------
파일명: target-spring-oracle/src/main/java/com/samsung/cryptverify/verification/dto/ScenarioDefinition.java
상태: clean
크기: 3615 bytes
------------------------------
내용
------------------------------
package com.samsung.cryptverify.verification.dto;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class ScenarioDefinition {
private String scenarioId;
private String displayName;
private String mapperFile;
private String sqlId;
private String sqlCommandType;
private String scenarioType;
private String targetTable;
private String targetColumn;
private String encColumn;
private String hashColumn;
private String javaProperty;
private String encryptTypeHandler;
private String hashTypeHandler;
private String executionMode;
private Map defaultParameters;
private List