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的更多相关文章

随机推荐

  1. windows server 2012 R2里IIS配置.net core2.1遇到的坑

    首先刚接触.net core不久,在本地也是简单写点测试程序,没遇到过什么问题,感觉还行,最近朋友搞了个asp.net core2.1的程序,让我给他服务器配置一下,我想这都跨平台了有什么难的吗?拿来 ...

  2. Linux系统下qt程序运行找不到IGL

    linux下使用QT5运行时出现两个问题: cannot find -lGL collect2:error:ld returned 1 exit status 这是因为系统缺少链接库,执行两条命令即可 ...

  3. Hbase之过滤器的使用

    一.过滤器概念 基础API中的查询操作在面对大量数据的时候是非常物无力的,这里Hbase提供了高级的查询方法:Filter(过滤器).过滤器可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hba ...

  4. STL小结

    \(\mathcal{STL}(\mathcal{Standard\ Template\ Library})\) \(queue\) (队列): 这是一种先进先出的数据结构. 主要操作: 操作 功能 ...

  5. Java中常用修饰符浅谈

    一.public.protected.default和private修饰符的作用域 public:在java程序中,如果将属性和方法定义为 public 类型,那么此属性和方法所在的类和及其子类,同一 ...

  6. Dockerfile文件说明

    文件说明 此文件用于docker镜像文件的制作 基本结构 Dockerfile文件由行命令组成,以#开头注释行 一般分为四部分,基础镜像信息.维护者信息.镜像操作指令和容器启动执行指令. 例如 #De ...

  7. 记一次Goroutine与wg导致的问题

    前言 今天发现了一个问题是之前一直没有注意到的,这里记一下 正文 Send Closed Chan 问题概述 代码逻辑是启动时启动多个 channel, channel1 获取数据监听数据处理后发送给 ...

  8. 【MyBatis】MyBatis 连接池和事务控制

    MyBatis 连接池和事务控制 文章源码 MyBaits 连接池 实际开发中都会使用连接池,因为它可以减少获取连接所消耗的时间.具体可查看 MyBatis 数据源配置在 SqlMapConfig.x ...

  9. Linux tar压缩和解压

    经常会忘记 tar 压缩和解压命令的使用,故记下来. 1. 打包压缩 tar -zcvf pack.tar.gz pack/ #打包压缩为一个.gz格式的压缩包 tar -jcvf pack.tar. ...

  10. docker 报错: Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

    最近在 Windows 子系统 WSL 上面安装了一个 ubuntu18.04, 安装完docker 跑 hello-world 的时候报错了 docker: Cannot connect to th ...