암복호화 지원 관련 소스/설정 수정
parent
52b034bc11
commit
2b6927f890
@ -1,43 +0,0 @@
|
|||||||
package cokr.xit.fims;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
|
|
||||||
import cokr.xit.fims.payer.dao.PayerEncryptor;
|
|
||||||
import cokr.xit.foundation.data.ARIA;
|
|
||||||
import cokr.xit.foundation.data.paging.EncryptionSupport;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
public class EncryptionConfig {
|
|
||||||
@Resource(name = "sqlSession")
|
|
||||||
private DefaultSqlSessionFactory sqlSessionFactory;
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
ARIA encryptor() {
|
|
||||||
return new ARIA()
|
|
||||||
.setKey("Copyright (c) 2015 - (주)엑스아이티")
|
|
||||||
.setAlgorithm("SHA-256");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
PayerEncryptor payerEncryptor() {
|
|
||||||
PayerEncryptor bean = new PayerEncryptor();
|
|
||||||
bean.setARIA(encryptor());
|
|
||||||
return bean;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
EncryptionSupport encryptionSupport() {
|
|
||||||
EncryptionSupport support = new EncryptionSupport();
|
|
||||||
support.setEncryptor(encryptor());
|
|
||||||
support.setEnabled(true);
|
|
||||||
support.setAdaptors(payerEncryptor());
|
|
||||||
|
|
||||||
sqlSessionFactory.getConfiguration().addInterceptor(support);
|
|
||||||
|
|
||||||
return support;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
package cokr.xit.fims.payer.dao;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import cokr.xit.fims.payer.Payer;
|
|
||||||
import cokr.xit.fims.payer.PayerQuery;
|
|
||||||
import cokr.xit.foundation.data.paging.EncryptionSupport;
|
|
||||||
|
|
||||||
public class PayerEncryptor extends EncryptionSupport.Adaptor {
|
|
||||||
private static final Pattern rtpyrNoPattern = Pattern.compile("\\d*");
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supports(Object obj) {
|
|
||||||
return obj instanceof Map
|
|
||||||
|| obj instanceof Payer
|
|
||||||
|| obj instanceof PayerQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEncrypted(String str) {
|
|
||||||
return !rtpyrNoPattern.matcher(str).matches();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayerEncryptor encrypt() {
|
|
||||||
if (obj instanceof Payer) {
|
|
||||||
Payer payer = (Payer)obj;
|
|
||||||
encrypt(payer::getRtpyrNo, payer::setRtpyrNo);
|
|
||||||
} else if (obj instanceof PayerQuery) {
|
|
||||||
PayerQuery req = (PayerQuery)obj;
|
|
||||||
encrypt(req::getRtpyrNo, req::setRtpyrNo);
|
|
||||||
} else if (obj instanceof Map) {
|
|
||||||
String key = "RTPYR_NO";
|
|
||||||
Map<String, Object> map = (Map<String, Object>)obj;
|
|
||||||
if (map.containsKey(key)) {
|
|
||||||
encrypt(
|
|
||||||
() -> (String)map.get(key),
|
|
||||||
(v) -> map.put(key, v)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayerEncryptor decrypt() {
|
|
||||||
if (obj instanceof Payer) {
|
|
||||||
Payer payer = (Payer)obj;
|
|
||||||
decrypt(payer::getRtpyrNo, payer::setRtpyrNo);
|
|
||||||
} else if (obj instanceof PayerQuery) {
|
|
||||||
PayerQuery req = (PayerQuery)obj;
|
|
||||||
decrypt(req::getRtpyrNo, req::setRtpyrNo);
|
|
||||||
} else if (obj instanceof Map) {
|
|
||||||
String key = "RTPYR_NO";
|
|
||||||
Map<String, Object> map = (Map<String, Object>)obj;
|
|
||||||
if (map.containsKey(key)) {
|
|
||||||
decrypt(
|
|
||||||
() -> (String)map.get(key),
|
|
||||||
(v) -> map.put(key, v)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,19 @@
|
|||||||
|
{ "enabled": true,
|
||||||
|
"cryptoDefs": [
|
||||||
|
{ "name": "aria",
|
||||||
|
"class": "cokr.xit.base.crypto.bean.ARIA",
|
||||||
|
"settings": {
|
||||||
|
"key": "Copyright (c) 2015 - (주)엑스아이티",
|
||||||
|
"algorithm": "SHA-256",
|
||||||
|
"blockSize": 1024
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"targetValues": [
|
||||||
|
{ "name": "주민등록번호",
|
||||||
|
"mapKeys": ["RTPYR_NO"],
|
||||||
|
"objectProperties": ["rtpyrNo"],
|
||||||
|
"cryptoDefs": ["aria"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue