SealClient
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.KeyStore; import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManagerFactory; import cfca.seal.util.Base64;
import cfca.seal.util.StringUtil; public class SealClient
{
public static final String ASSIST_SEAL_SERVLET = "AssistSealServlet";
public static final String MAKE_SEAL_SERVLET = "MakeSealServlet";
public static final String WEB_SEAL_SERVLET = "WebSealServlet";
public static final String PDF_SEAL_SERVLET = "PdfSealServlet";
public static final String BUSINESS_SEAL_SERVLET = "BusinessSealServlet";
public static final String DEFAULT_CHARSET = "UTF-8";
public static final String SLASH = "/";
private String urlString;
private int connectTimeout = 30000;
private int readTimeout = 30000; private String keyStorePath = "";
private String keyStorePassword = "";
private String trustStorePath = "";
private String trustStorePassword = ""; public SealClient(String urlString, String keyStorePath, String keyStorePassword, String trustStorePath, String trustStorePassword) {
this.keyStorePath = keyStorePath;
this.keyStorePassword = keyStorePassword;
this.trustStorePath = trustStorePath;
this.trustStorePassword = trustStorePassword;
this.urlString = urlString;
} public SealClient(String urlString) {
this.urlString = urlString;
} public SealClient(String urlString, int connectTimeout, int readTimeout) {
this.urlString = urlString;
this.connectTimeout = connectTimeout;
this.readTimeout = readTimeout;
} public String reqAndRes(String urlString, String parameterData) throws Exception {
String result = ""; if ((StringUtil.isNotEmpty(urlString)) && (urlString.startsWith("https://")))
result = reqAndResForHttps(urlString, parameterData);
else if ((StringUtil.isNotEmpty(urlString)) && (urlString.startsWith("http://"))) {
result = reqAndResForHttp(urlString, parameterData);
} return result;
} public String reqAndResForHttps(String urlString, String parameterData) throws Exception
{
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;
StringBuffer resultBuffer = new StringBuffer();
try
{
SSLContext sslContext = getSSLContext(this.keyStorePath, this.keyStorePassword, this.trustStorePath, this.trustStorePassword);
URL url = new URL(urlString);
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslContext.getSocketFactory());
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(this.connectTimeout));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(this.readTimeout));
conn.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
conn.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));
outputStream = conn.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(parameterData);
outputStreamWriter.flush(); inputStream = conn.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
reader = new BufferedReader(inputStreamReader);
String tempLine = null;
while ((tempLine = reader.readLine()) != null)
resultBuffer.append(tempLine);
}
catch (MalformedURLException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
if (outputStreamWriter != null) {
outputStreamWriter.close();
} if (outputStream != null) {
outputStream.close();
} if (reader != null) {
reader.close();
} if (inputStreamReader != null) {
inputStreamReader.close();
} if (inputStream != null) {
inputStream.close();
}
}
return resultBuffer.toString();
} public String reqAndResForHttp(String urlString, String parameterData) throws Exception {
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;
StringBuffer resultBuffer = new StringBuffer();
try
{
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(this.connectTimeout));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(this.readTimeout));
outputStream = conn.getOutputStream();
outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(parameterData);
outputStreamWriter.flush();
inputStream = conn.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
reader = new BufferedReader(inputStreamReader);
String tempLine = null;
while ((tempLine = reader.readLine()) != null)
resultBuffer.append(tempLine);
}
catch (MalformedURLException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
if (outputStreamWriter != null) {
outputStreamWriter.close();
} if (outputStream != null) {
outputStream.close();
} if (reader != null) {
reader.close();
} if (inputStreamReader != null) {
inputStreamReader.close();
} if (inputStream != null) {
inputStream.close();
}
}
return resultBuffer.toString();
} public SSLContext getSSLContext(String keyStorePath, String keyStorePassword, String trustStorePath, String trustStorePassword) throws Exception
{
SSLContext ctx = SSLContext.getInstance("SSL"); String jdkvs = System.getProperty("java.vm.vendor"); KeyManagerFactory kmf = null;
TrustManagerFactory tmf = null;
if ((null != jdkvs) && (jdkvs.startsWith("IBM"))) {
kmf = KeyManagerFactory.getInstance("IbmX509");
tmf = TrustManagerFactory.getInstance("IbmPKIX");
} else {
kmf = KeyManagerFactory.getInstance("SunX509");
tmf = TrustManagerFactory.getInstance("SunX509");
} KeyStore ks = null; if (keyStorePath.indexOf("jks") >= 0)
ks = KeyStore.getInstance("JKS");
else if (keyStorePath.indexOf("pfx") >= 0) {
ks = KeyStore.getInstance("PKCS12");
}
KeyStore tks = KeyStore.getInstance("JKS"); ks.load(new FileInputStream(keyStorePath), keyStorePassword.toCharArray());
tks.load(new FileInputStream(trustStorePath), trustStorePassword.toCharArray()); kmf.init(ks, keyStorePassword.toCharArray());
tmf.init(tks); ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); return ctx;
} public String makeSeal(byte[] pfx, String pfxPassword, byte[] image, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); String imageString = new String(Base64.encode(image), "UTF-8");
imageString = URLEncoder.encode(imageString, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=makeSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&image=" + imageString + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String makeNamedSeal(byte[] pfx, String pfxPassword, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=makeNamedSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String updateSeal(byte[] pfx, String pfxPassword, byte[] image, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); String imageString = new String(Base64.encode(image), "UTF-8");
imageString = URLEncoder.encode(imageString, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=updateSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&image=" + imageString + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String updateNamedSeal(byte[] pfx, String pfxPassword, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=updateNamedSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] sealAutoPdf(byte[] pdf, String sealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
sealStrategyXML = new String(Base64.encode(sealStrategyXML.getBytes("UTF-8")), "UTF-8");
sealStrategyXML = URLEncoder.encode(sealStrategyXML, "UTF-8"); String parameterData = "type=sealAutoPdf&pdf=" + pdfString + "&sealStrategyXML=" + sealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] batchSealAutoPdf(byte[] pdf, String batchSealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8"); batchSealStrategyXML = new String(Base64.encode(batchSealStrategyXML.getBytes("UTF-8")), "UTF-8");
batchSealStrategyXML = URLEncoder.encode(batchSealStrategyXML, "UTF-8"); String parameterData = "type=batchSealAutoPdf&pdf=" + pdfString + "&batchSealStrategyXML=" + batchSealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String sealBase64PdfFunction(String pdfBase64, String pfxBase64, String pfxPassword, String imageBase64, String sealFunctionStrategyXML)
throws Exception
{
try
{
pdfBase64 = new String(Base64.encode(pdfBase64.getBytes("UTF-8")), "UTF-8");
pdfBase64 = URLEncoder.encode(pdfBase64, "UTF-8"); pfxBase64 = new String(Base64.encode(pfxBase64.getBytes("UTF-8")), "UTF-8");
pfxBase64 = URLEncoder.encode(pfxBase64, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); imageBase64 = new String(Base64.encode(imageBase64.getBytes("UTF-8")), "UTF-8");
imageBase64 = URLEncoder.encode(imageBase64, "UTF-8"); sealFunctionStrategyXML = new String(Base64.encode(sealFunctionStrategyXML.getBytes("UTF-8")), "UTF-8");
sealFunctionStrategyXML = URLEncoder.encode(sealFunctionStrategyXML, "UTF-8"); String parameterData = "type=sealBase64PdfFunction&pdfBase64=" + pdfBase64 + "&pfxBase64=" + pfxBase64 + "&pfxPassword=" + pfxPassword + "&imageBase64=" + imageBase64 + "&sealFunctionStrategyXML=" + sealFunctionStrategyXML; return reqAndRes(this.urlString, parameterData);
}
catch (Exception e)
{
e.printStackTrace();
throw e;
}
} public byte[] sealPdfFunction(byte[] pdf, byte[] pfx, String pfxPassword, byte[] image, String sealFunctionStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8"); String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); String imageString = new String(Base64.encode(image), "UTF-8");
imageString = URLEncoder.encode(imageString, "UTF-8"); sealFunctionStrategyXML = new String(Base64.encode(sealFunctionStrategyXML.getBytes("UTF-8")), "UTF-8");
sealFunctionStrategyXML = URLEncoder.encode(sealFunctionStrategyXML, "UTF-8"); String parameterData = "type=sealPdfFunction&pdfString=" + pdfString + "&pfxString=" + pfxString + "&pfxPassword=" + pfxPassword + "&imageString=" + imageString + "&sealFunctionStrategyXML=" + sealFunctionStrategyXML; return Base64.decode(reqAndRes(this.urlString, parameterData));
}
catch (Exception e)
{
e.printStackTrace();
throw e;
}
} public byte[] sealAutoCrossPdf(byte[] pdf, String crossSealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8"); crossSealStrategyXML = new String(Base64.encode(crossSealStrategyXML.getBytes("UTF-8")), "UTF-8");
crossSealStrategyXML = URLEncoder.encode(crossSealStrategyXML, "UTF-8"); String parameterData = "type=sealAutoCrossPdf&pdf=" + pdfString + "&crossSealStrategyXML=" + crossSealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] sealAutoSynthesizedBusinessPdf(byte[] pdf, String businessXML, String sealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8"); businessXML = new String(Base64.encode(businessXML.getBytes("UTF-8")), "UTF-8");
businessXML = URLEncoder.encode(businessXML, "UTF-8"); sealStrategyXML = new String(Base64.encode(sealStrategyXML.getBytes("UTF-8")), "UTF-8");
sealStrategyXML = URLEncoder.encode(sealStrategyXML, "UTF-8"); String parameterData = "type=sealAutoSynthesizedBusinessPdf&pdf=" + pdfString + "&businessXML=" + businessXML + "&sealStrategyXML=" + sealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] addWaterMark2Pdf(byte[] pdf, String waterMarkStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8"); waterMarkStrategyXML = new String(Base64.encode(waterMarkStrategyXML.getBytes("UTF-8")), "UTF-8");
waterMarkStrategyXML = URLEncoder.encode(waterMarkStrategyXML, "UTF-8"); String parameterData = "type=addWaterMark2Pdf&pdf=" + pdfString + "&waterMarkStrategyXML=" + waterMarkStrategyXML; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] signWebSeal(String sourceBase64, String sealStrategyXml)
throws Exception
{
try
{
sourceBase64 = new String(Base64.encode(sourceBase64.getBytes("UTF-8")), "UTF-8");
sourceBase64 = URLEncoder.encode(sourceBase64, "UTF-8"); sealStrategyXml = new String(Base64.encode(sealStrategyXml.getBytes("UTF-8")), "UTF-8");
sealStrategyXml = URLEncoder.encode(sealStrategyXml, "UTF-8"); String parameterData = "type=signWebSeal&sourceBase64=" + sourceBase64 + "&sealStrategyXml=" + sealStrategyXml; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String verifyPdfSeal(byte[] sealedPdf, String verifyStrategyXML)
throws Exception
{
try
{
String sealedPdfString = new String(Base64.encode(sealedPdf), "UTF-8");
sealedPdfString = URLEncoder.encode(sealedPdfString, "UTF-8"); verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8");
verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8"); String parameterData = "type=verifyPdfSeal&sealedPdf=" + sealedPdfString + "&verifyStrategyXML=" + verifyStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String verifyWebSeal(String webSealSource, String sourceBase64, String verifyStrategyXML)
throws Exception
{
try
{
webSealSource = new String(Base64.encode(webSealSource.getBytes("UTF-8")), "UTF-8");
webSealSource = URLEncoder.encode(webSealSource, "UTF-8"); sourceBase64 = new String(Base64.encode(sourceBase64.getBytes("UTF-8")), "UTF-8");
sourceBase64 = URLEncoder.encode(sourceBase64, "UTF-8"); verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8");
verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8"); String parameterData = "type=verifyWebSeal&webSealSource=" + webSealSource + "&sourceBase64=" + sourceBase64 + "&verifyStrategyXML=" + verifyStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] synthesizeAutoBusinessPdf(byte[] pdf, String businessXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8"); businessXML = new String(Base64.encode(businessXML.getBytes("UTF-8")), "UTF-8");
businessXML = URLEncoder.encode(businessXML, "UTF-8"); String parameterData = "type=synthesizeAutoBusinessPdf&pdf=" + pdfString + "&businessXML=" + businessXML; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public byte[] transformToPdf(byte[] source, String fileType)
throws Exception
{
try
{
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8"); fileType = new String(Base64.encode(fileType.getBytes("UTF-8")), "UTF-8");
fileType = URLEncoder.encode(fileType, "UTF-8"); String parameterData = "type=transformToPdf&sourceString=" + sourceString + "&fileType=" + fileType; String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String p1Sign(byte[] source, String signStrategyXML)
throws Exception
{
try
{
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8"); signStrategyXML = new String(Base64.encode(signStrategyXML.getBytes("UTF-8")), "UTF-8");
signStrategyXML = URLEncoder.encode(signStrategyXML, "UTF-8"); String parameterData = "type=p1Sign&source=" + sourceString + "&signStrategyXML=" + signStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String p7SignDetached(byte[] source, String signStrategyXML)
throws Exception
{
try
{
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8"); signStrategyXML = new String(Base64.encode(signStrategyXML.getBytes("UTF-8")), "UTF-8");
signStrategyXML = URLEncoder.encode(signStrategyXML, "UTF-8"); String parameterData = "type=p7SignDetached&source=" + sourceString + "&signStrategyXML=" + signStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String p7VerifyDetached(String signatureBase64, byte[] source, String verifyStrategyXML)
throws Exception
{
try
{
signatureBase64 = new String(Base64.encode(signatureBase64.getBytes("UTF-8")), "UTF-8");
signatureBase64 = URLEncoder.encode(signatureBase64, "UTF-8"); String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8"); verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8");
verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8"); String parameterData = "type=p7VerifyDetached&signatureBase64=" + signatureBase64 + "&source=" + sourceString + "&verifyStrategyXML=" + verifyStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String getSealInfo(String sealCode)
throws Exception
{
try
{
sealCode = new String(Base64.encode(sealCode.getBytes("UTF-8")), "UTF-8");
sealCode = URLEncoder.encode(sealCode, "UTF-8"); String parameterData = "type=getSealInfo&sealCode=" + sealCode; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String bindSeal(String bindSealXML)
throws Exception
{
try
{
bindSealXML = new String(Base64.encode(bindSealXML.getBytes("UTF-8")), "UTF-8");
bindSealXML = URLEncoder.encode(bindSealXML, "UTF-8"); String parameterData = "type=bindSeal&bindSealXML=" + bindSealXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} public String autoGenerateImage(String imageStrategyXML)
throws Exception
{
try
{
imageStrategyXML = new String(Base64.encode(imageStrategyXML.getBytes("UTF-8")), "UTF-8");
imageStrategyXML = URLEncoder.encode(imageStrategyXML, "UTF-8"); String parameterData = "type=autoGenerateImage&imageStrategyXML=" + imageStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
SealClient的更多相关文章
随机推荐
- 容器编排系统K8s之NetworkPolicy资源
前文我们了解了k8s的网络插件flannel的基础工作逻辑,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14225657.html:今天我们来聊一下k8s上 ...
- apply 和 call的用法、区别
1.JavaScript中函数是对象的方法,如果一个函数不是js对象的方法那一定是全局对象的函数,每个函数的对象都有apply和call方法,即每个对象都有call and apply apply:调 ...
- [Skill] git下载助手
缘由 某些时候需要下载git项目中的某个独立的文件或者文件夹下的内容,克隆全部速度过于慢 搜索下发现有开源的实现,特此记录下 方案 国内不便于fq 源码 服务地址 国外原作者 源码 服务地址 使用方法 ...
- transmission protocol
传输层主要定义了主机应用程序间端到端的连通性,它一般包含四项基本功能 . 将应用层发往网络层的数据分段或将网络层发往应用层的数据段合并 建立端到端的链接,主要是建立逻辑连接以传送数据流 将数据段从一台 ...
- NIO基础操作
原文链接http://zhhll.icu/2020/05/18/java%E5%9F%BA%E7%A1%80/IO/NIO%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/ N ...
- redis 6.0新特性
防止忘记,记录一下 1.多线程IO Redis 6引入多线程IO,但多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程.之所以这么设计是不想因为多线程而变得复杂,需要去控制 key. ...
- ArrayDeque API 与算法分析
ArrayDeque 是双端队列的动态数组实现,可以当作栈和队列来使用.作为栈时,它的效率比 Stack 更高,作为队列时,效率比 LinkedList 更高.ArrayDeque 大部分操作的时间复 ...
- linux + svn提交日志不能显示 日期一直都是1970-01-01
网上很多都是说将svn安装目录下的svnserve.conf文件中的anon-access 设置为read,但是 经查阅并测试, 设置为: anon-access = none 是正确的,设置成 r ...
- Svm算法原理及实现
Svm(support Vector Mac)又称为支持向量机,是一种二分类的模型.当然如果进行修改之后也是可以用于多类别问题的分类.支持向量机可以分为线性核非线性两大类.其主要思想为找到空间中的一个 ...
- IDEA 常用的一些 (就几个) 快捷键
快捷键 说明 Ctrl + P 提示类参数 Ctrl + Q 提示类的属性和方法包名 Ctrl + D 复制一行到下一行 Ctrl + F 查找 Ctrl + R 替换 Ctrl + Z 撤销 Ctr ...