修改短链接、修改日志

This commit is contained in:
junj2.liang 2022-08-09 14:42:42 +08:00
parent 983459f816
commit 719388494b
2 changed files with 49 additions and 16 deletions

View File

@ -14,7 +14,7 @@ import java.util.List;
* 上海黄金交易所 - 数据库加密方案 * 上海黄金交易所 - 数据库加密方案
*/ */
public class SydApi4Database implements SydApi { public class SydApi4Database implements SydApi {
static Logger log = LogFactory.getLogger();
private SydApi4j[] hsms = null; private SydApi4j[] hsms = null;
private boolean isShortLinkMode = false; private boolean isShortLinkMode = false;
@ -28,7 +28,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public SydApi SYD_Short_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int allDealTimeOut) { public SydApi SYD_Short_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int allDealTimeOut) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_Connect_Ex方法接收参数:pcIpList:{},iPortList:{},iConnectTimeOut:{},iDealTimeOut:{}", Arrays.toString(pcIpList), Arrays.toString(iPortList), iConnectTimeOut, allDealTimeOut); log.debug("SYD_Connect_Ex方法接收参数:pcIpList:{},iPortList:{},iConnectTimeOut:{},iDealTimeOut:{}", Arrays.toString(pcIpList), Arrays.toString(iPortList), iConnectTimeOut, allDealTimeOut);
} }
@ -39,18 +38,26 @@ public class SydApi4Database implements SydApi {
SydApi4j[] apis = new SydApi4j[pcIpList.length]; SydApi4j[] apis = new SydApi4j[pcIpList.length];
int iDealTimeOut = allDealTimeOut / pcIpList.length; int iDealTimeOut = allDealTimeOut / pcIpList.length;
boolean connected = false;
for (int i = 0; i < pcIpList.length ; i++) { for (int i = 0; i < pcIpList.length ; i++) {
try { try {
apis[i] = (SydApi4j) new SydApi4j().connect(pcIpList[i], iPortList[i], null, iConnectTimeOut, iDealTimeOut); apis[i] = (SydApi4j) new SydApi4j().connect(pcIpList[i], iPortList[i], null, iConnectTimeOut, iDealTimeOut);
connected = true;
}catch ( Exception e) { }
catch ( Exception e) {
// 忽略错误 // 忽略错误
log.error("网络连接错误 {} {} - 忽略",pcIpList[i], iPortList[i]); log.error("网络连接错误 {} {} - 忽略",pcIpList[i], iPortList[i]);
} }
} }
if( ! connected ) {
// TODO
throw new SydApiException("连接错误",-1);
}
hsms = apis; hsms = apis;
isShortLinkMode = true; isShortLinkMode = true;
@ -76,11 +83,12 @@ public class SydApi4Database implements SydApi {
} }
} }
// 配合链接池不再需要释放 // 配合链接池不再需要释放
} }
@Override @Override
public String SYD_SM3_Hash_ShortData(byte[] pcData) { public String SYD_SM3_Hash_ShortData(byte[] pcData) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM3_Hash_ShortData方法接收参数pcData{}", Arrays.toString(pcData)); log.debug("SYD_SM3_Hash_ShortData方法接收参数pcData{}", Arrays.toString(pcData));
} }
@ -90,6 +98,11 @@ public class SydApi4Database implements SydApi {
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
byte[] hash = api.SYD_SM3_LongData(pcData, null, 0); byte[] hash = api.SYD_SM3_LongData(pcData, null, 0);
log.debug("api.SYD_SM3_LongData方法返回值{}",Arrays.toString(hash)); log.debug("api.SYD_SM3_LongData方法返回值{}",Arrays.toString(hash));
@ -107,7 +120,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public LongDataReturn<String, String> SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, String pcProcData) { public LongDataReturn<String, String> SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, String pcProcData) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM3_Hash_LongData方法接收参数pcData{},iPkgNum{},pcProcData{}", Arrays.toString(pcData), iPkgNum, pcProcData); log.debug("SYD_SM3_Hash_LongData方法接收参数pcData{},iPkgNum{},pcProcData{}", Arrays.toString(pcData), iPkgNum, pcProcData);
} }
@ -124,6 +136,9 @@ public class SydApi4Database implements SydApi {
} }
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
byte[] hash = api.SYD_SM3_LongData(pcData, procData, iPkgNum); byte[] hash = api.SYD_SM3_LongData(pcData, procData, iPkgNum);
log.debug("api.SYD_SM3_LongData方法返回值{}",Arrays.toString(hash)); log.debug("api.SYD_SM3_LongData方法返回值{}",Arrays.toString(hash));
@ -145,7 +160,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) { public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4_ShortData方法接收参数iKeyIndex{},pcData{},iFlag{}", iKeyIndex, Arrays.toString(pcData), iFlag); log.debug("SYD_SM4_ShortData方法接收参数iKeyIndex{},pcData{},iFlag{}", iKeyIndex, Arrays.toString(pcData), iFlag);
} }
@ -159,8 +173,10 @@ public class SydApi4Database implements SydApi {
String keyIndex = String.format("%08d", iKeyIndex); String keyIndex = String.format("%08d", iKeyIndex);
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
if (Consts.ECB_ENC == iFlag) { if (Consts.ECB_ENC == iFlag) {
return api.SYMEncryptData( return api.SYMEncryptData(
com.sunyard.SydApi.NALG_SM4, com.sunyard.SydApi.NALG_SM4,
@ -187,7 +203,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) { public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4_BatchData方法接收参数iKeyIndex{},pcData元素个数为{},iFlag{}", iKeyIndex, pcData.size(), iFlag); log.debug("SYD_SM4_BatchData方法接收参数iKeyIndex{},pcData元素个数为{},iFlag{}", iKeyIndex, pcData.size(), iFlag);
} }
@ -209,6 +224,9 @@ public class SydApi4Database implements SydApi {
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
if (Consts.ECB_ENC == iFlag) { if (Consts.ECB_ENC == iFlag) {
return api.SYMEncryptDecryptBatchData(8, 1, null, keys, 1, pcData); return api.SYMEncryptDecryptBatchData(8, 1, null, keys, 1, pcData);
@ -229,7 +247,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) { public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},iFlag{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, iFlag); log.debug("SYD_SM4_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},iFlag{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, iFlag);
} }
@ -243,6 +260,9 @@ public class SydApi4Database implements SydApi {
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
if (Consts.ECB_ENC == iFlag) { if (Consts.ECB_ENC == iFlag) {
return api.SYD_SM4_LongData( return api.SYD_SM4_LongData(
@ -273,7 +293,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public String[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) { public String[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4Mac_BatchDataiKeyIndex{},pcData元素个数为{}", iKeyIndex, pcData.size()); log.debug("SYD_SM4Mac_BatchDataiKeyIndex{},pcData元素个数为{}", iKeyIndex, pcData.size());
} }
@ -287,6 +306,9 @@ public class SydApi4Database implements SydApi {
} }
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
List<byte[]> list = api.SYMEncryptDecryptBatchData(8, 2, null, keys, 1, pcData); List<byte[]> list = api.SYMEncryptDecryptBatchData(8, 2, null, keys, 1, pcData);
String[] ret = new String[list.size()]; String[] ret = new String[list.size()];
@ -311,7 +333,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, String[] pcMac) { public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, String[] pcMac) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4Mac_BatchData方法接收参数iKeyIndex{},pcData元素个数为{},pcMac{}", iKeyIndex, pcData.size(), Arrays.toString(pcMac)); log.debug("SYD_SM4Mac_BatchData方法接收参数iKeyIndex{},pcData元素个数为{},pcMac{}", iKeyIndex, pcData.size(), Arrays.toString(pcMac));
} }
@ -325,6 +346,9 @@ public class SydApi4Database implements SydApi {
} }
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
List<byte[]> list = api.SYMEncryptDecryptBatchData(8, 2, null, keys, 1, pcData); List<byte[]> list = api.SYMEncryptDecryptBatchData(8, 2, null, keys, 1, pcData);
boolean[] ret = new boolean[list.size()]; boolean[] ret = new boolean[list.size()];
@ -349,7 +373,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public LongDataReturn<String, String> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData) { public LongDataReturn<String, String> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4Mac_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},pcProcData{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, pcProcData); log.debug("SYD_SM4Mac_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},pcProcData{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, pcProcData);
} }
@ -368,6 +391,9 @@ public class SydApi4Database implements SydApi {
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
byte[] ret = api.SYD_SM4_LongData( byte[] ret = api.SYD_SM4_LongData(
8, 8,
@ -400,7 +426,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public LongDataReturn<String, Boolean> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData, String pcMac) { public LongDataReturn<String, Boolean> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData, String pcMac) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4Mac_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},pcProcData{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, pcProcData, pcMac); log.debug("SYD_SM4Mac_LongData方法接收参数iKeyIndex{},pcData{},iPkgNum{},pcProcData{}", iKeyIndex, Arrays.toString(pcData), iPkgNum, pcProcData, pcMac);
} }
@ -417,7 +442,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public String SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData) { public String SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4Mac_ShortData方法接收参数iKeyIndex{},pcData{},iFlag{}", iKeyIndex, Arrays.toString(pcData)); log.debug("SYD_SM4Mac_ShortData方法接收参数iKeyIndex{},pcData{},iFlag{}", iKeyIndex, Arrays.toString(pcData));
} }
@ -429,6 +453,9 @@ public class SydApi4Database implements SydApi {
log.debug("\"SK\" + SYMUtil.genPrivateKeyMark方法返回值{}",keyIndex); log.debug("\"SK\" + SYMUtil.genPrivateKeyMark方法返回值{}",keyIndex);
SydApiException le = null; SydApiException le = null;
for (SydApi4j api : this.hsms) { for (SydApi4j api : this.hsms) {
if ( null == api ) {
continue;
}
try { try {
return api.SYD_SM4Mac_ShortData(keyIndex, pcData); return api.SYD_SM4Mac_ShortData(keyIndex, pcData);
@ -446,7 +473,6 @@ public class SydApi4Database implements SydApi {
@Override @Override
public boolean SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, String pcMac) { public boolean SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, String pcMac) {
Logger log = LogFactory.getLogger();
if (LogFactory.iLogLevel==3) { if (LogFactory.iLogLevel==3) {
log.debug("SYD_SM4Mac_ShortData方法接收参数{}", iKeyIndex, Arrays.toString(pcData), pcMac); log.debug("SYD_SM4Mac_ShortData方法接收参数{}", iKeyIndex, Arrays.toString(pcData), pcMac);
} }

View File

@ -1,5 +1,6 @@
package com.sunyard.sge.database.pool; package com.sunyard.sge.database.pool;
import com.sunyard.SydApiException;
import com.sunyard.sge.database.SydApi; import com.sunyard.sge.database.SydApi;
import com.sunyard.sge.database.SydApi4Database; import com.sunyard.sge.database.SydApi4Database;
import com.sunyard.sge.log.LogFactory; import com.sunyard.sge.log.LogFactory;
@ -41,6 +42,12 @@ public class SydApiPool extends ThreadBasedConnectPool<SydApi> {
} }
} }
if( ! connected ) {
// TODO
throw new SydApiException("连接错误",-1);
}
return new SydApi4Database( apis ); return new SydApi4Database( apis );
} }