|
|
4 anni fa | |
|---|---|---|
| readme.md | 4 anni fa |
上传文件接口
http://ip+port/ymwk/api/file/upload
post application/x-www-form-urlencoded
file : 要上传的文件
Content-AppKey: 系统分配的应用key
文件保存地址
下载文件接口
http://ip+port/ymwk/api/file/get
get
filePath: 上传文件时返回的文件地址
Content-AppKey: 系统分配的应用key
Content-Signature: 将参数hmac后的摘要值
文件二进制数据
证据保全接口
http://ip+port/ymwk/api/evidence/save
post
示例参数:
{
"auditEvidence":{
"account":"审核账号",
"auditContent":"审核内容",
"auditResult":"审核结果",
"createTime":"2021-09-03 10:22:33"
},
"authType":4,
"businessNumber":"540c1988d82044a49b44f7498cc081e3",
"businessType":6,
"certEvidence":{
"certSn":"证书Sn号",
"certbase64":"证书base64",
"notAfter":"2021-09-03",
"notBefore":"2021-09-03",
"orgData":"原文",
"signData":"签名值",
"subject":"主体项"
},
"eventDescription":"测试",
"faceEvidence":{
"idCard":"证件号",
"realName":"认证人",
"verifyTime":"2021-09-03 10:22:33"
},
"fileEvidence":{
"account":"归档账号",
"createTime":"2021-09-03 10:22:33",
"documentType":"归档文件类型",
"filePath":"归档文件地址"
},
"loginEvidence":{
"account":"登录账号",
"createTime":"2021-09-03 10:22:33",
"ip":"登录Ip",
"system":"登录系统"
},
"queryEvidence":{
"account":"查询账号",
"params":"查询参数",
"queryTime":"2021-09-03 10:22:33",
"result":"查询结果",
"url":"查询地址"
},
"smsEvidence":{
"phone":"17688636307",
"smsCode":"123456",
"smsMsg":"验证码为:123456",
"verifyTime":"2021-09-03 10:22:33"
},
"submitEvidence":{
"account":"申请/提交账号",
"submitContent":"申请/提交内容",
"submitTime":"2021-09-03 10:22:33"
},
"tokenEvidence":{
"timeStamp":"2021-09-03 10:22:33",
"tokenCode":"token值"
},
"uploadEvidence":{
"account":"上传账号",
"fileName":"文件名",
"filePath":"文件地址",
"fileType":"文件类型",
"uploadTime":"2021-09-03 10:22:33"
}
}
请求头数据
Content-AppKey: 系统分配的应用key
Content-Signature: 将参数hmac后的摘要值
证据保存成功返回系统生成的证据唯一编号
http://ip+port/ymwk/api/evidence/get
post
示例参数:
{"evidenceNumber":"证据保全接口返回的唯一编号"}
Content-AppKey: 系统分配的应用key
Content-Signature: 将参数hmac后的摘要值
获取成功后将返回证据详细信息
步骤:
先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。
秘钥为系统分配的应用secret
原文为转化为字符串的json
"HMAC-SM3 "+hmac //注意: sm3后面是有一个空格的
将得到的最终的值填入请求头中: key为 "Content-Signature"
java示例代码
JSONObject certEvidence = new JSONObject(new TreeMap<String,Object>());
certEvidence.put("key", "value");
//其他信息.....
JSONObject evidence = new JSONObject(new TreeMap<String,Object>());
evidence.put("certEvidence",certEvidence);
String rawHmac = SM3Util.hmac(appSecret,evidence.toJSONString());
rawHmac = "HMAC-SM3 " + rawHmac;
.addRequestHeader("Content-Signature", "HMAC-SM3 " + rawHmac);
//其他参数
public static final Log LOGGER = LogFactory.getLog(EvidenceTest.class);
static final String appKey = "fgU0t50X3JmA";
static final String appSecret = "RB9T6lBUGJ5YAB5M";
static final String saveUrl = "/save";
static final String getUrl = "/get";
static final String baseUrl = "http://192.168.0.112:10088/ymwk/api/evidence";
public static void main(String[] args) {
//save();
get("证据保全接口返回的唯一编号");
}
public static void save() {
JSONObject evidence = new JSONObject(new TreeMap<String,Object>());
String businessNumber = UUidUtils.uuidString();
evidence.put("businessNumber", businessNumber);
evidence.put("eventDescription", "测试");
evidence.put("authType",4);
evidence.put("businessType",6);
JSONObject smsEvidence = new JSONObject(new TreeMap<String,Object>());
smsEvidence.put("phone", "17688636307");
smsEvidence.put("smsMsg", "验证码为:123456");
smsEvidence.put("smsCode", "123456");
smsEvidence.put("verifyTime", "2021-09-03 10:22:33");
evidence.put("smsEvidence", smsEvidence);
JSONObject certEvidence = new JSONObject(new TreeMap<String,Object>());
certEvidence.put("orgData", "原文");
certEvidence.put("signData", "签名值");
certEvidence.put("certbase64", "证书base64");
certEvidence.put("subject", "主体项");
certEvidence.put("notAfter", "2021-09-03");
certEvidence.put("notBefore", "2021-09-03");
certEvidence.put("certSn", "证书Sn号");
evidence.put("certEvidence", certEvidence);
JSONObject faceEvidence = new JSONObject(new TreeMap<String,Object>());
faceEvidence.put("realName", "认证人");
faceEvidence.put("idCard", "证件号");
faceEvidence.put("verifyTime", "2021-09-03 10:22:33");
evidence.put("faceEvidence", faceEvidence);
JSONObject tokenEvidence = new JSONObject(new TreeMap<String,Object>());
tokenEvidence.put("timeStamp", "2021-09-03 10:22:33");
tokenEvidence.put("tokenCode", "token值");
evidence.put("tokenEvidence", tokenEvidence);
JSONObject queryEvidence = new JSONObject(new TreeMap<String,Object>());
queryEvidence.put("params", "查询参数");
queryEvidence.put("result", "查询结果");
queryEvidence.put("url", "查询地址");
queryEvidence.put("account", "查询账号");
queryEvidence.put("queryTime", "2021-09-03 10:22:33");
evidence.put("queryEvidence", queryEvidence);
JSONObject submitEvidence = new JSONObject(new TreeMap<String,Object>());
submitEvidence.put("submitContent", "申请/提交内容");
submitEvidence.put("account", "申请/提交账号");
submitEvidence.put("submitTime", "2021-09-03 10:22:33");
evidence.put("submitEvidence", submitEvidence);
JSONObject auditEvidence = new JSONObject(new TreeMap<String,Object>());
auditEvidence.put("auditContent", "审核内容");
auditEvidence.put("account", "审核账号");
auditEvidence.put("auditResult", "审核结果");
auditEvidence.put("createTime", "2021-09-03 10:22:33");
evidence.put("auditEvidence", auditEvidence);
JSONObject uploadEvidence = new JSONObject(new TreeMap<String,Object>());
uploadEvidence.put("fileType", "文件类型");
uploadEvidence.put("filePath", "文件地址");
uploadEvidence.put("account", "上传账号");
uploadEvidence.put("fileName", "文件名");
uploadEvidence.put("uploadTime", "2021-09-03 10:22:33");
evidence.put("uploadEvidence", uploadEvidence);
JSONObject fileEvidence = new JSONObject(new TreeMap<String,Object>());
fileEvidence.put("documentType", "归档文件类型");
fileEvidence.put("filePath", "归档文件地址");
fileEvidence.put("account", "归档账号");
fileEvidence.put("createTime", "2021-09-03 10:22:33");
evidence.put("fileEvidence", fileEvidence);
JSONObject loginEvidence = new JSONObject(new TreeMap<String,Object>());
loginEvidence.put("ip", "登录Ip");
loginEvidence.put("system", "登录系统");
loginEvidence.put("account", "登录账号");
loginEvidence.put("createTime", "2021-09-03 10:22:33");
evidence.put("loginEvidence", loginEvidence);
System.out.println(evidence.toJSONString());
String result = post(evidence,1);
Result resultObject = JSONObject.parseObject(result,Result.class);
get((String)resultObject.getObject());
}
public static void get(String evidenceNumber) {
JSONObject evidence = new JSONObject(new TreeMap<String,Object>());
evidence.put("evidenceNumber", evidenceNumber);
System.out.println(evidence.toJSONString());
post(evidence,2);
}
public static String post(JSONObject evidence,Integer type) {
LOGGER.info(evidence);
String rawHmac = "";
try {
rawHmac = SM3Util.hmac(appSecret,evidence.toJSONString());
// 创建httpClient实例对象
HttpClient httpClient = new HttpClient();
// 设置httpClient连接主机服务器超时时间:15000毫秒
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
// 创建post请求方法实例对象
String postUrl = baseUrl;
if(type == 1) {
postUrl += saveUrl;
}else {
postUrl += getUrl;
}
PostMethod postMethod = new PostMethod(postUrl);
// 设置post请求超时时间
postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
postMethod.addRequestHeader("Content-Type", "application/json");
postMethod.addRequestHeader("Content-AppKey", appKey);
postMethod.addRequestHeader("Content-Signature", "HMAC-SM3 " + rawHmac);
//json格式的参数解析
RequestEntity entity = new StringRequestEntity(evidence.toJSONString(), "application/json", "UTF-8");
postMethod.setRequestEntity(entity);
httpClient.executeMethod(postMethod);
InputStream inputStream = postMethod.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String result= "";
while((result = br.readLine()) != null){
stringBuffer.append(result);
}
postMethod.releaseConnection();
LOGGER.info(stringBuffer.toString());
return stringBuffer.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}