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的更多相关文章
随机推荐
- Eclipse 使用svn时出现 “Previous operation has not finished; run 'cleanup' if it was interrupted“问题
在执行svn操作的时候出现了下面的问题 commit -m "" E:/eclipse/workplace/BRobotAPP/blockly/googleDemo/blockly ...
- Hive日期函数总结(转学习使用)
一.时间戳函数 1.获取当前时区的UNIX时间戳:select unix_timestamp(); 2.将指定时间转为UNIX时间戳: select unix_timestamp('2012-03-0 ...
- Spring框架之spring-webmvc源码完全解析
Spring框架之spring-webmvc源码完全解析 Spring框架提供了构建Web应用程序的全功能MVC模块.Spring MVC分离了控制器.模型对象.分派器以及处理程序对象的角色,支持多种 ...
- 风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE
风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE XSS如何利用 获取COOKIE 我们使用pikachu写的pkxss后台 使用方法: <img src="http:/ ...
- 使用lua+redis解决发多张券的并发问题
前言 公司有一个发券的接口有并发安全问题,下面列出这个问题和解决这个问题的方式. 业务描述 这个接口的作用是给会员发多张券码.涉及到4张主体,分别是:用户,券,券码,用户领取记录. 下面是改造前的伪代 ...
- halcon案例学习之cbm_label_simple
*cbm_label_simple 程序说明:*这个示例程序展示了如何使用基于组件的匹配来定位复合对象.在这种情况下,应该在图像中找到一个标签,用户既不知道其中的组件,也不知道它们之间的关系.因此,创 ...
- 【Azure Developer】Python代码通过AAD认证访问微软Azure密钥保管库(Azure Key Vault)中机密信息(Secret)
关键字说明 什么是 Azure Active Directory?Azure Active Directory(Azure AD, AAD) 是 Microsoft 的基于云的标识和访问管理服务,可帮 ...
- Spring Boot超详细用户管理项目(零)——开发前准备
开始前的软件准备:(编写中:未完成) 使用软件介绍: Java版本:Java SE 11(LTS) 开发工具:IDEA(2020.3版本) Linux系统: 数据库: Java 版本:Java SE ...
- docker cp 拷贝文件 和 进入容器
进入正在运行的容器 # 进入容器 新开一个终端 # docker exec -it 容器id /bin/bash docker exec -it eaac94ef6926 /bin/bash # 进入 ...
- SparkStreaming和Kafka基于Direct Approach如何管理offset实现exactly once
在之前的文章<解析SparkStreaming和Kafka集成的两种方式>中已详细介绍SparkStreaming和Kafka集成主要有Receiver based Approach和Di ...