浏览代码

'删除xxxmapper.xml'

Althars123 4 年之前
父节点
当前提交
912ae2ae71

+ 2 - 1
hzgzpt-admin/src/main/resources/application.yml

@@ -196,7 +196,8 @@ sms_password: "t7nwh7"
 
 
 
-# --------------------------------------------短信验证-------------------------------------
+# 调用外部接口
 feign:
   jgpt_ipport: http://localhost:8080/
+  qgpt_ipport: http://114.55.58.112:8085/
 

+ 12 - 16
hzgzpt-admin/src/test/java/com/miaxis/test/NormalTest.java

@@ -1,15 +1,11 @@
 package com.miaxis.test;
 
 import com.miaxis.HzgzptApplication;
-import com.miaxis.app.test.inf.ITestService;
-import com.miaxis.app.xxx.service.ITMClassRecordDetailService;
-import com.miaxis.app.school.domain.SchoolInfo;
-import com.miaxis.app.feign.ITMTrainRecordDataService;
-import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.app.test.Impl.TestServiceImpl;
+import com.miaxis.common.sign.PlatUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.stereotype.Service;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
@@ -27,22 +23,22 @@ public class NormalTest {
 
 
     @Resource
-    private ITestService testService;
-
-    @Resource
-    ITMClassRecordDetailService itmClassRecordDetailService;
+    private TestServiceImpl testService;
 
 
     @Test
-    public void test(){
-        System.out.println(itmClassRecordDetailService.count());
+    public void test2() throws Exception {
+        File file =new File("F:/doc/img/gen-view.jpg");
+        System.out.println(testService.imageUpForQG(file,this.httpServer_Imageup,this.file_stuimg,""));
     }
 
-
     @Test
-    public void test2() throws Exception {
-        File file =new File("D:\\xx.jpg");
-        testService.imageUpForQG(file,this.httpServer_Imageup,this.file_stuimg,"");
+    public void test3() throws Exception {
+        File file =new File("F:/doc/img/gen-view.jpg");
+        testService.getHttpServerUrlForFileUpload(this.qgptHttpTopServerPath, httpServer_Imageup + "/" + file_stuimg, PlatUtil.getBytesFromFile(file), "");
+
+
+//        System.out.println(testService.imageUpForQG(file,this.httpServer_Imageup,this.file_stuimg,""));
     }
 
 

+ 82 - 0
hzgzpt-admin/src/test/java/com/miaxis/test/feign/FeignTest.java

@@ -0,0 +1,82 @@
+package com.miaxis.test.feign;
+
+import com.miaxis.HzgzptApplication;
+import com.miaxis.app.feign.IQgptService;
+import com.miaxis.app.test.Impl.TestServiceImpl;
+import com.miaxis.common.sign.ISign;
+import com.miaxis.common.sign.PlatUtil;
+import com.miaxis.common.sign.Sign;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.cert.X509Certificate;
+import java.util.Enumeration;
+
+@SpringBootTest(classes = HzgzptApplication.class)
+@RunWith(SpringRunner.class)
+public class FeignTest {
+
+    public static String qgptHttpTopServerPath = "http://114.55.58.112:8085/top/";
+    public static String qgptHttpServerPath = "http://115.29.171.186:8085/";
+    public static final String file_stuimg = "stuimg";//学员头像
+    /** 接口服务器:Imageup (文件资料信息上传) */
+    public static final String httpServer_Imageup = "imageup";
+
+
+    @Resource
+    private TestServiceImpl testService;
+
+    @Resource
+    private IQgptService qgptService;
+
+
+    @Test
+    public void test2() throws Exception {
+        File file =new File("F:/doc/img/gen-view.jpg");
+        long timestamp = System.currentTimeMillis(); // 时间戳
+        String sign_str = ""; // 签名
+        /* 获取签名 */
+        String path = getClass().getResource("/").getPath();
+        java.io.File jarFile = new java.io.File(path);
+        String propertiesfile = jarFile.getParentFile().getAbsolutePath().replace("%20", " ");
+        KeyStore keyStore = KeyStore.getInstance("PKCS12");
+        InputStream input = new FileInputStream(propertiesfile + PlatUtil.privateKeyUrl);
+        keyStore.load(input, PlatUtil.keyPassword.toCharArray());
+        Enumeration<String> aliases = keyStore.aliases();
+        if (!aliases.hasMoreElements()) {
+            throw new RuntimeException("HTTP接口协议签名获取失败: no alias found");
+        }
+        String alias = aliases.nextElement();
+        PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, PlatUtil.keyPassword.toCharArray()); // 私钥
+        ISign sign = new Sign();
+        byte[] data = PlatUtil.getBytesFromFile(file);
+        sign_str = sign.sign(data, timestamp, privateKey);
+
+        /* 验证签名 */
+        X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);
+        String serialNumber = cert.getSerialNumber().toString(); // 证书序列号
+        long snInteger = Long.parseLong(serialNumber);
+        serialNumber = Long.toHexString(snInteger).toUpperCase();
+
+
+
+       // qgptService.imageup(PlatUtil.url_version,System.currentTimeMillis(),serialNumber,sign_str,)
+
+
+        //System.out.println(testService.imageUpForQG(file,this.httpServer_Imageup,this.file_stuimg,""));
+    }
+
+
+
+
+
+
+}

+ 2 - 2
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/EncodeUtil.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/EncodeUtil.java

@@ -1,4 +1,4 @@
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 public class EncodeUtil {
 	public static byte[] toBE(long data) {
@@ -13,5 +13,5 @@ public class EncodeUtil {
         buffer[7] = (byte)(data >>>  0);
         return buffer;
 	}
-	
+
 }

+ 3 - 3
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/ISign.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/ISign.java

@@ -1,10 +1,10 @@
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 import java.security.PrivateKey;
 
 public interface ISign {
 	public String sign(String data, long timestamp, PrivateKey key) throws Exception;
-	public String sign(byte [] data, long timestamp, PrivateKey key) throws Exception;
+	public String sign(byte[] data, long timestamp, PrivateKey key) throws Exception;
 	public String sign(String data, PrivateKey key) throws Exception;
-	public String sign(byte [] data, PrivateKey key) throws Exception;
+	public String sign(byte[] data, PrivateKey key) throws Exception;
 }

+ 14 - 0
hzgzpt-common/src/main/java/com/miaxis/common/sign/IVerify.java

@@ -0,0 +1,14 @@
+package com.miaxis.common.sign;
+
+import java.security.cert.X509Certificate;
+
+public interface IVerify {
+	public boolean verify(String data, long timestamp, String encodedEncryptedStr,
+                          X509Certificate userCert) throws Exception ;
+	public boolean verify(String data, String encodedEncryptedStr,
+                          X509Certificate userCert) throws Exception;
+	public boolean verify(byte[] data, String encodedEncryptedStr,
+                          X509Certificate userCert) throws Exception;
+	public boolean verify(byte[] data, long timestamp, String encodedEncryptedStr,
+                          X509Certificate userCert) throws Exception;
+}

+ 28 - 28
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/PlatUtil.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/PlatUtil.java

@@ -1,4 +1,4 @@
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 import java.io.*;
 import java.util.HashMap;
@@ -50,7 +50,7 @@ public class PlatUtil {
 	public static String downAppXY_IOS = "";
 	public static String downAppJX_IOS = "";
 	public static String downAppYG_IOS = "";
-	
+
 	/**实时视频参数*/
 	public static  String video_resolution = "";//分辨率
 	public static  String video_chaneId = "";//通道号
@@ -63,7 +63,7 @@ public class PlatUtil {
 	public static  String  video_roomNum = "";//房间数量
 	public static  String sso_open = "1";
 	public static String sso_url = "http://fj.jppt.com.cn/sso";
-	
+
 	public static String httpServer_LeaveCoach = "leaveCoach";
 	public static String businessType_leaveCoach = "leaveCoach";
 
@@ -203,16 +203,16 @@ public class PlatUtil {
 	public static final String businessType_graduation = "学员结业备案";
 	/** 日志-业务类型: 绑定教练车 */
 	public static final String businessType_bindCar = "绑定教练车";
-	
+
 	/** 日志-业务类型:绑定模拟  */
 	public static final String httpServer_BindSimulator = "绑定模拟器";
-	
+
 	/** 日志-业务类型: 解绑教练车 */
 	public static final String businessType_unBindCar = "解绑教练车";
-	
+
 	/** 日志-业务类型: 解绑模拟器 */
 	public static final String businessType_unBindSimulator = "解绑模拟器";
-	
+
 	/** 日志-业务类型: 解绑教练车 */
 	public static final String businessType_altConnect = "变更在线状态";
 	/** 日志-业务类型: 审核结果消息通知 */
@@ -256,7 +256,7 @@ public class PlatUtil {
 	public static final String businessType_changecardtype = "刷卡类型变更";
 	/** 日志-业务类型: 新增备案 */
 	public static final String businessType_Student_Change = "转校申请";
-	
+
 	public static final String businessType_abnormal = "学时异常查询接";
 	public static final String businessType_querystage = "阶段送审信息查询";
 	public static final String businessType_queryPoliceState = "阶段送审记录推送交警查询";
@@ -276,12 +276,12 @@ public class PlatUtil {
 	/** 返回码: -99(系统错误日记) */
 
 	public static final String businessType_studentScore="学员考试成绩";
-	
+
 	public static final String businessType_studenttransfer="异地学员转入";
-	
-	
-	
-	
+
+
+
+
 	public static final String errorcode_system = "-99";
 	/** 返回码: -99(系统错误日记) */
 	public static final String errorcode_exceptionText = "服务异常";
@@ -316,7 +316,7 @@ public class PlatUtil {
 		put("202", "证书无法通过验证");
 	}};
 
-	
+
 	/** 接口服务名:Schbaseadd(全国、省平台预录入) 20190618全国平台预录入新的方支*/
 	public static final String httpServer_Schbaseadd_new = "preinstitution";
 	/** 接口服务名:Schbaseadd(全国、省平台预录入) */
@@ -443,7 +443,7 @@ public class PlatUtil {
 	public static final String httpServer_GetJxQz = "getJxQz";
 	/** 获取最后GPS点信息 **/
 	public static final String httpServer_getLastGpsBySim = "getLastGpsBySim";
-	/** 获取房间号 **/ 
+	/** 获取房间号 **/
 	public static final String httpServer_getRoomNum = "getRoomNum";
 	/**获取设备视频房间**/
 	public static final String httpServer_getDeviceVideoByDeviceNum = "getDeviceVideoByDeviceNum";
@@ -451,7 +451,7 @@ public class PlatUtil {
 	public static final String httpServer_updateStuState = "updateStuState";
 	/**  监管平台扩展接口20200108服务名:根据全国编号获取教练信息  */
 	public static final String httpServer_getCoachByObjnum = "getCoachByObjnum";
-	
+
 	/** 接口服务器:扩展消息通知接口  */
 	public static final String httpServer_Msgnotify = "msgnotify";
 	/**  监管平台扩展接口:表A.72 电子教学日志按时间查询接口定义  */
@@ -462,10 +462,10 @@ public class PlatUtil {
 	public static final String httpServer_trainrecord = "trainrecord";
 	/**  监管平台扩展接口:表A.61 电子教学日志备案结果查询  */
 	public static final String httpServer_classrecord = "classrecord";
-	
+
 	/** 接口服务名:coach(教练通知结果查询) */
 	public static final String httpServer_SelectCoachNotify = "coach";
-	
+
 	/** 接口服务名:trainingcar(教练车通知结果查询) */
 	public static final String httpServer_SelectTrainingcarNotify = "trainingcar";
 	/** 接口服务名:examiner(考核员通知结果查询) */
@@ -490,7 +490,7 @@ public class PlatUtil {
 	public static final String httpServer_carLicense = "carLicense";
 	/** 接口服务名:updateCarInsurance(车辆保险修改接口定义) */
 	public static final String httpServer_updateCarInsurance = "updateCarInsurance";
-	
+
 	/** 接口服务名:vehicleClass(车辆等级评定审核接口定义) */
 	public static final String httpServer_vehicleClass = "vehicleClass";
 	/** 接口服务名:applyCard(IC卡申请审核接口定义) */
@@ -501,10 +501,10 @@ public class PlatUtil {
 	public static final String httpServer_coachLeave = "coachLeave";
 	/** 接口服务名:coachLeave(学员异常日志申诉审核通知) */
 	public static final String httpServer_trainAppeal = "trainAppeal";
-	
+
 	/** 接口服务名:carRembinding(车辆解绑教练员) */
 	public static final String httpServer_carRembinding = "carRembinding";
-	
+
 	/**上传文件参数类型*/
 	public static final String file_stuimg = "stuimg";//学员头像
 	public static final String file_stufp = "stufp";//学员指纹
@@ -544,18 +544,18 @@ public class PlatUtil {
 
 	/** 接口服务名:TrainingCar(新增运政教练车辆证变更接口) */
 	public static final String httpServer_TrainingCar_UpdateCarLicense = "updateCarLicense";
-	
+
 	/** 接口服务名:TrainingCar(补传车辆信息) */
 	public static final String httpServer_TrainingCar_UpdateCarFiles = "updateCarFiles";
-	
+
 	/** 接口服务名:studentLogout(学员注销) */
 	public static final String httpServer_studentLogout = "studentLogout";
-	
+
 	/** 接口服务名:studenttransfer(异地学员) */
 	public static final String httpServer_studenttransfer = "studenttransfer";
-	
+
 	public static final String httpServer_studentScore = "studentScore";
-	
+
 	/**
 	 * 用于查询全国平台统一编号列表
 	 */
@@ -619,10 +619,10 @@ public class PlatUtil {
 
 
 
-	
 
 
-	
+
+
 
 
 }

+ 7 - 7
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/ProvResultJson.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/ProvResultJson.java

@@ -2,7 +2,7 @@
  * JSON返回结果集
  * @author liaogr 2015-3-24
  * */
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 
 public class ProvResultJson {
@@ -15,19 +15,19 @@ public class ProvResultJson {
 	private String coachnum;//教练员编号	统一编号
 	private String examnum;//考核员编号 	统一编号
 	private String secunum;//安全员编号 	统一编号
-	
+
 	private String carnum;//教练车编号	  	统一编号
 	private String stunum;//学员编号		统一编号
 	private String devnum;//终端编号		统一编号
-	
+
 	private String id;//上传资源 统一返回ID
-	
+
 	private String imei;//如果终端时,为终端IMEI号或设备MAC地址
 	private String key;//如果终端时,为终端证书
 	private String passwd;//如果终端时,为终端密码
-	
+
 	private String path;//图片路径
-	
+
 
 	public String getPath() {
 		return path;
@@ -155,6 +155,6 @@ public class ProvResultJson {
 		this.result = result;
 	}
 	public ProvResultJson(){
-		
+
 	}
 }

+ 6 - 6
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/Sign.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/Sign.java

@@ -1,4 +1,4 @@
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 import com.sun.org.apache.xerces.internal.impl.dv.util.HexBin;
 
@@ -8,26 +8,26 @@ import java.security.PrivateKey;
 
 @SuppressWarnings("restriction")
 public class Sign implements ISign {
-	
+
 	public String sign(String data, long timestamp, PrivateKey key) throws Exception {
 		return sign(data.getBytes("utf-8"), timestamp, key);
 	}
-	
+
 	public String sign(String data, PrivateKey key) throws Exception{
 		return sign(data.getBytes("utf-8"), 0, key);
 	}
-	
+
 	public String sign(byte [] data, PrivateKey key) throws Exception {
 		return sign(data, 0, key);
 	}
-	
+
 	public String sign(byte [] data, long timestamp, PrivateKey key) throws Exception {
 		MessageDigest md = MessageDigest.getInstance(PlatUtil.url_version_type);
 		md.update(data);
 		if(timestamp > 0){
 			md.update(EncodeUtil.toBE(timestamp));
 		}
-		
+
 		byte[] hash = md.digest();
 		Cipher cipher = Cipher.getInstance("RSA");
 		cipher.init(Cipher.ENCRYPT_MODE, key);

+ 27 - 0
hzgzpt-common/src/main/java/com/miaxis/common/sign/SignUtil.java

@@ -0,0 +1,27 @@
+package com.miaxis.common.sign;
+
+
+
+
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.util.Enumeration;
+
+/**
+ */
+public class SignUtil {
+	public static String getSign(byte[] data)throws Exception{
+        String sign_str = ""; // 签名
+		KeyStore keyStore = KeyStore.getInstance("PKCS12");
+		Enumeration<String> aliases = keyStore.aliases();
+		if (!aliases.hasMoreElements()) { ;
+			throw new RuntimeException("HTTP接口协议签名获取失败: no alias found");
+		}
+		String alias = aliases.nextElement();
+		PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, PlatUtil.keyPassword.toCharArray()); // 私钥
+		ISign sign = new Sign();
+        long timestamp = System.currentTimeMillis(); // 时间戳
+        sign_str = sign.sign(data,timestamp , privateKey);
+        return sign_str;
+	}
+}

+ 8 - 8
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/Verify.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/Verify.java

@@ -1,4 +1,4 @@
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 import com.sun.org.apache.xerces.internal.impl.dv.util.HexBin;
 
@@ -9,25 +9,25 @@ import java.util.Arrays;
 
 @SuppressWarnings("restriction")
 public class Verify implements IVerify {
-	
+
 	public boolean verify(String data, long timestamp, String encodedEncryptedStr,
-			X509Certificate userCert) throws Exception 
+			X509Certificate userCert) throws Exception
 	{
 		return verify(data.getBytes("utf-8"), timestamp, encodedEncryptedStr, userCert);
 	}
-	
+
 	public boolean verify(String data, String encodedEncryptedStr,
 			X509Certificate userCert) throws Exception
 	{
 		return verify(data.getBytes("utf-8"), 0, encodedEncryptedStr, userCert);
 	}
-	
+
 	public boolean verify(byte [] data, String encodedEncryptedStr,
 			X509Certificate userCert) throws Exception{
 		return verify(data, encodedEncryptedStr, userCert);
 	}
-	
-	
+
+
 	public boolean verify(byte [] data, long timestamp, String encodedEncryptedStr,
 			X509Certificate userCert) throws Exception
 	{
@@ -36,7 +36,7 @@ public class Verify implements IVerify {
 		if(timestamp > 0){
 			md.update(EncodeUtil.toBE(timestamp));
 		}
-		
+
 		byte[] hash = md.digest();
 
 		byte[] encryptedStr = HexBin.decode(encodedEncryptedStr);

+ 9 - 9
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/VerifyUtil.java → hzgzpt-common/src/main/java/com/miaxis/common/sign/VerifyUtil.java

@@ -1,15 +1,15 @@
-package com.miaxis.app.test.util;
+package com.miaxis.common.sign;
 
 import java.util.List;
 
 /**
  * 验证工具类
- * 
+ *
  * @author 刘志敏
  * @Date 2016年11月30日 下午3:00:34
  */
 public class VerifyUtil {
-	
+
 	/**
 	 * 验证字符串(String)是否为空字符串,true不为空,false为空
 	 * @param str
@@ -21,7 +21,7 @@ public class VerifyUtil {
 		}
 		return false;
 	}
-	
+
 	/**
 	 * 验证整形(Integer)是否为空字符串,true不为空,false为空
 	 * @param str
@@ -33,7 +33,7 @@ public class VerifyUtil {
 		}
 		return false;
 	}
-	
+
 	/**
 	 * 验证集合(List)是否为空集合,true不为空,false为空
 	 * @param str
@@ -46,13 +46,13 @@ public class VerifyUtil {
 		}
 		return false;
 	}
-	
+
 	/**
 	 * 验证Object
-	 * 
+	 *
 	 * @param obj
 	 * @return boolean
-	 * @throws 
+	 * @throws
 	 * @author 刘志敏
 	 * @Date 2017年11月8日 下午3:34:11
 	 */
@@ -62,5 +62,5 @@ public class VerifyUtil {
 		}
 		return false;
 	}
-	
+
 }

+ 25 - 0
hzgzpt-service-app/src/main/java/com/miaxis/app/feign/IQgptService.java

@@ -0,0 +1,25 @@
+package com.miaxis.app.feign;
+
+
+import com.miaxis.app.school.domain.SchoolInfo;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.io.File;
+
+@FeignClient(name="qgptService",
+        url = "${feign.qgpt_ipport}")
+
+public interface IQgptService {
+    @RequestMapping(value = "/top/stuimg", method = RequestMethod.POST)
+    ResponsePageInfo<SchoolInfo> imageup(@RequestParam("v" ) String version,
+                                         @RequestParam("ts" ) Long timestamp,
+                                         @RequestParam("user" ) String serialNumber,
+                                         @RequestParam("sign" ) String sign,
+                                         @RequestBody File[] Files);
+
+}

+ 1 - 2
hzgzpt-service-app/src/main/java/com/miaxis/app/test/Impl/TestServiceImpl.java

@@ -1,7 +1,7 @@
 package com.miaxis.app.test.Impl;
 
 import com.miaxis.app.test.inf.ITestService;
-import com.miaxis.app.test.util.*;
+import com.miaxis.common.sign.*;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.methods.PostMethod;
@@ -28,7 +28,6 @@ public class TestServiceImpl implements ITestService {
 
     public String imageUpForQG(File file, String serviceName, String type, String filePath) throws Exception {
         ProvResultJson result = new ProvResultJson("操作失败", "1");
-
         System.out.println("上传照片到全国平台");
         HttpClient client = new HttpClient();
         StringBuffer sb = null;

+ 0 - 14
hzgzpt-service-app/src/main/java/com/miaxis/app/test/util/IVerify.java

@@ -1,14 +0,0 @@
-package com.miaxis.app.test.util;
-
-import java.security.cert.X509Certificate;
-
-public interface IVerify {
-	public boolean verify(String data, long timestamp, String encodedEncryptedStr,
-			X509Certificate userCert) throws Exception ;
-	public boolean verify(String data, String encodedEncryptedStr,
-			X509Certificate userCert) throws Exception;
-	public boolean verify(byte [] data, String encodedEncryptedStr,
-			X509Certificate userCert) throws Exception;
-	public boolean verify(byte [] data, long timestamp, String encodedEncryptedStr,
-			X509Certificate userCert) throws Exception;
-}