Merge branch 'jenkins_with_weblogic' of ssh://git@192.168.240.178:18081/eapim/eapim-online.git into jenkins_with_weblogic
This commit is contained in:
@@ -35,15 +35,11 @@ import com.eactive.eai.common.util.Logger;
|
||||
import com.eactive.eai.common.util.MessageUtil;
|
||||
import com.eactive.eai.common.util.UUIDGenerator;
|
||||
import com.eactive.eai.inbound.error.InboundErrorInfoVO;
|
||||
import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
|
||||
import com.kjbank.encrypt.exchange.crypto.AES256GCMCipher;
|
||||
import com.kjbank.encrypt.exchange.crypto.AESCipher;
|
||||
|
||||
// jwhong
|
||||
import org.json.simple.JSONObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.sql.Timestamp;
|
||||
import com.eactive.eai.data.entity.onl.stdmessage.StandardMessageInfo;
|
||||
|
||||
@RestController
|
||||
@@ -64,14 +60,27 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
||||
String apiUri = servletRequest.getRequestURI();
|
||||
// /api/v1/public/getUserInfo.svc
|
||||
apiUri = StringUtils.removeStart(apiUri, servletRequest.getContextPath());
|
||||
apiUri = StringUtils.removeEnd(apiUri, "/");
|
||||
|
||||
HttpDynamicInAdapterUri adptUri = findAdptUri(apiUri, HttpDynamicInAdapterManager.getInstance());
|
||||
|
||||
//Received time , jwhong
|
||||
long receivedTimeMillis = System.currentTimeMillis();
|
||||
String receivedTimeStr = String.valueOf(receivedTimeMillis);
|
||||
|
||||
apiUri = StringUtils.removeEnd(apiUri, "/");
|
||||
|
||||
//** jwhong TSEAIHS04의 api full path와 비교하여 adapter를 가져온다
|
||||
String methodAndUri = servletRequest.getMethod() + "|" + apiUri;
|
||||
HttpDynamicInAdapterUri adptUri = null;
|
||||
String adapterGrpName ="";
|
||||
String apiSvcCode = "";
|
||||
try {
|
||||
STDMessageDAO dao = ApplicationContextProvider.getContext().getBean(STDMessageDAO.class);
|
||||
StandardMessageInfo stdInfo = dao.getSTDMsgByPath(methodAndUri);
|
||||
String serviceKey = stdInfo.getBzwksvckeyname();
|
||||
int idx = serviceKey.indexOf(":");
|
||||
adapterGrpName = (idx != -1) ? serviceKey.substring(0, idx) : serviceKey; // ':' 이전 문자열 추출
|
||||
apiSvcCode = stdInfo.getEaisvcname();
|
||||
//아래 원래 Logic
|
||||
adptUri = findAdptUri(apiUri, HttpDynamicInAdapterManager.getInstance(), adapterGrpName);
|
||||
} catch (Exception e) {
|
||||
adptUri = null;
|
||||
}
|
||||
//***
|
||||
|
||||
if (logger.isDebug()) {
|
||||
logger.debug("ApiAdapterController] service request uri : " + servletRequest.getRequestURI());
|
||||
}
|
||||
@@ -80,8 +89,11 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
||||
logError(servletRequest);
|
||||
// throw new Exception("can not find Adapter Uri");
|
||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("can not find Adapter Uri");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Received time , jwhong
|
||||
long receivedTimeMillis = System.currentTimeMillis(); // 밀리세컨 단위로 보내야함
|
||||
String receivedTimeStr = String.valueOf(receivedTimeMillis);
|
||||
|
||||
String adapterGroupName = adptUri.getAdptGrpName();
|
||||
String adapterName = adptUri.getAdptName();
|
||||
@@ -102,8 +114,9 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
||||
String responseType = httpProp.getProperty(RESPONSE_TYPE, "SYNC");
|
||||
ResponseEntity responseEntity = null;
|
||||
Properties transactionProp = new Properties();
|
||||
//transactionProp.put(INBOUND_REQUESTED_TIME, receivedTimeMillis); // jwhong, put api received time
|
||||
// jwhong, put api received time, eaiSvcCode
|
||||
transactionProp.put(INBOUND_REQUESTED_TIME, receivedTimeStr);
|
||||
transactionProp.put(API_SERVICE_CODE, apiSvcCode);
|
||||
|
||||
try {
|
||||
String responseData = service.callApi(servletRequest, servletResponse, httpProp, adapterGroupVO, adapterVO, transactionProp);
|
||||
@@ -170,18 +183,23 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
||||
* @param apiUri
|
||||
* @return
|
||||
*/
|
||||
private HttpDynamicInAdapterUri findAdptUri(String apiUri, HttpDynamicInAdapterManager manager) throws Exception {
|
||||
private HttpDynamicInAdapterUri findAdptUri(String apiUri, HttpDynamicInAdapterManager manager, String adapterGrpName) throws Exception {
|
||||
if (StringUtils.isBlank(apiUri)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//** jwhong TSEAIHS04의 api full path와 비교하여 adapter를 가져온다
|
||||
STDMessageDAO dao = ApplicationContextProvider.getContext().getBean(STDMessageDAO.class);
|
||||
StandardMessageInfo stdInfo = dao.getSTDMsgByPath(apiUri);
|
||||
String serviceKey = stdInfo.getBzwksvckeyname();
|
||||
int idx = serviceKey.indexOf(":");
|
||||
String adapterGrpName = (idx != -1) ? serviceKey.substring(0, idx) : serviceKey; // ':' 이전 문자열 추출
|
||||
//***
|
||||
//* manager 출력
|
||||
logger.warn("===== adptUriMap 상세 내용 =====");
|
||||
for (Map.Entry<String, HttpDynamicInAdapterUri> entry : manager.adptUriMap.entrySet()) {
|
||||
HttpDynamicInAdapterUri uriObj = entry.getValue();
|
||||
logger.warn("GroupName=" + uriObj.getAdptGrpName()
|
||||
+ ", AdapterName=" + uriObj.getAdptName()
|
||||
+ ", URI=" + uriObj.getUri());
|
||||
}
|
||||
logger.warn("================================");
|
||||
|
||||
|
||||
//
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
HttpDynamicInAdapterUri adptUri = manager.getAdptUri(apiUri);
|
||||
@@ -281,6 +299,4 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
||||
return json.toJSONString();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
@@ -309,7 +309,27 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
|
||||
result = mapper.writeValueAsString(rootNode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// KJBank는 요청에 대한 응답 (Sync응답, Aync 에 대한 Ack응답) 에 대하여 암호화 하지 않는다. 무조건 안한다. 따라서 아래부분은 구현은 했지만 사용하지 않는다.
|
||||
//result = doPostEncryption(result, transactionProp); // jwhong Encrypt
|
||||
// ASYNC 인 경우 광주은행은 RETURN 해 주는 값들이 수정되어야 한다. JWHONG
|
||||
/*
|
||||
if ("ASYN".equals(syncAsyncType) && MessageType.JSON.equals(adptMsgType) && StringUtils.isNotBlank(headerGroupName)) {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
ObjectNode rootNode = (ObjectNode) mapper.readTree(result);
|
||||
JsonNode headerGroup = rootNode.get(headerGroupName);
|
||||
if(headerGroup != null) {
|
||||
for(Iterator<String> it = headerGroup.fieldNames(); it.hasNext();) {
|
||||
String name = it.next();
|
||||
String value = headerGroup.get(name).asText();
|
||||
response.addHeader(name, value);
|
||||
}
|
||||
rootNode.remove(headerGroupName);
|
||||
result = mapper.writeValueAsString(rootNode);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// KJBank는 요청에 대한 응답 (Sync응답, Aync 에 대한 Ack응답) 에 대하여 암호화 하지 않는다. 무조건 안한다. 따라서 아래부분은 구현은 했지만 사용하지 않는다.
|
||||
//result = doPostEncryption(result, transactionProp); // jwhong Encrypt
|
||||
return result;
|
||||
@@ -448,6 +468,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
|
||||
// end test source
|
||||
|
||||
switch (decryptAlgorithm) {
|
||||
case "AES128":
|
||||
case "AES128-TOSS":
|
||||
try {
|
||||
String key128 = clientSecretKey.substring(22,38); //togetherEncoder 경우는 substring(44,60) 이네??
|
||||
@@ -532,6 +553,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
|
||||
String decryptedBodyMessage = "";
|
||||
|
||||
switch (decryptAlgorithm) {
|
||||
case "AES128":
|
||||
case "AES128-TOSS":
|
||||
decryptedJsonKey = "preScreeningRequest";
|
||||
break;
|
||||
@@ -587,6 +609,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
|
||||
// end test source
|
||||
|
||||
switch (encryptAlgorithm) {
|
||||
case "AES128":
|
||||
case "AES128-TOSS":
|
||||
try {
|
||||
String key128 = clientSecretKey.substring(22,38); //togetherEncoder 경우는 substring(44,60) 이네??
|
||||
|
||||
Reference in New Issue
Block a user