新增人脸核身解密功能 #60
@@ -26,8 +26,7 @@ import com.ruoyi.system.service.ISysMenuService;
|
|||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
public class SysLoginController
|
public class SysLoginController {
|
||||||
{
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysLoginService loginService;
|
private SysLoginService loginService;
|
||||||
|
|
||||||
@@ -37,7 +36,7 @@ public class SysLoginController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SysPermissionService permissionService;
|
private SysPermissionService permissionService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IdentityAuthenticationService identityAuthenticationService;
|
IdentityAuthenticationService identityAuthenticationService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录方法
|
* 登录方法
|
||||||
@@ -46,20 +45,17 @@ public class SysLoginController
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public AjaxResult login(@RequestBody LoginBody loginBody)
|
public AjaxResult login(@RequestBody LoginBody loginBody) {
|
||||||
{
|
|
||||||
AjaxResult ajax = AjaxResult.success();
|
AjaxResult ajax = AjaxResult.success();
|
||||||
// 生成令牌
|
// 生成令牌
|
||||||
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
|
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
|
||||||
loginBody.getUuid());
|
loginBody.getUuid());
|
||||||
ajax.put(Constants.TOKEN, token);
|
ajax.put(Constants.TOKEN, token);
|
||||||
|
//判断该用户是否已经实名认证(certificationStatus1已认证0未认证)
|
||||||
// IdentityAuthentication identityAuthentication = new IdentityAuthentication();
|
IdentityAuthentication identityAuthentication=new IdentityAuthentication();
|
||||||
// identityAuthentication.setUserName(loginBody.getUsername());
|
identityAuthentication.setUserName(loginBody.getUsername());
|
||||||
// IdentityAuthentication identityAuthenticationselect = identityAuthenticationService.selectIdentityAuthentication(identityAuthentication);
|
String status = identityAuthenticationService.checkIsAuthentication(identityAuthentication);
|
||||||
// ajax.put("certificationStatusName", identityAuthenticationselect.getCertificationStatusName());
|
ajax.put("certificationStatus", status);
|
||||||
// ajax.put("certificationStatus", identityAuthenticationselect.getCertificationStatus());
|
|
||||||
|
|
||||||
return ajax;
|
return ajax;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,8 +65,7 @@ public class SysLoginController
|
|||||||
* @return 用户信息
|
* @return 用户信息
|
||||||
*/
|
*/
|
||||||
@GetMapping("getInfo")
|
@GetMapping("getInfo")
|
||||||
public AjaxResult getInfo()
|
public AjaxResult getInfo() {
|
||||||
{
|
|
||||||
SysUser user = SecurityUtils.getLoginUser().getUser();
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
||||||
// 角色集合
|
// 角色集合
|
||||||
Set<String> roles = permissionService.getRolePermission(user);
|
Set<String> roles = permissionService.getRolePermission(user);
|
||||||
@@ -89,8 +84,7 @@ public class SysLoginController
|
|||||||
* @return 路由信息
|
* @return 路由信息
|
||||||
*/
|
*/
|
||||||
@GetMapping("getRouters")
|
@GetMapping("getRouters")
|
||||||
public AjaxResult getRouters()
|
public AjaxResult getRouters() {
|
||||||
{
|
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SecurityUtils.getUserId();
|
||||||
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
||||||
return AjaxResult.success(menuService.buildMenus(menus));
|
return AjaxResult.success(menuService.buildMenus(menus));
|
||||||
|
|||||||
+9
-22
@@ -1,8 +1,8 @@
|
|||||||
package com.ruoyi.web.controller.wisdomarbitrate;
|
package com.ruoyi.web.controller.wisdomarbitrate;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
|
|
||||||
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
|
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
|
||||||
import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
|
import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -19,35 +19,22 @@ public class IdentityAuthenticationController extends BaseController {
|
|||||||
private IdentityAuthenticationService identityAuthenticationService;
|
private IdentityAuthenticationService identityAuthenticationService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询身份认证EIDtoken
|
* 获取EIDtoken
|
||||||
*/
|
*/
|
||||||
@PostMapping("/selectIdentityAuthenticaEIDtoken")
|
@PostMapping("/selectIdentityAuthenticaEIDtoken")
|
||||||
public AjaxResult selectIdentityAuthenticaEIDtoken()
|
public AjaxResult selectIdentityAuthenticaEIDtoken() {
|
||||||
{
|
JSONObject tokenResult = identityAuthenticationService.selectIdentityAuthenticaEIDtoken();
|
||||||
IdentityAuthentication ientityAuthentication = identityAuthenticationService.selectIdentityAuthenticaEIDtoken();
|
return success(tokenResult);
|
||||||
return success(ientityAuthentication);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询身份认证结果
|
* 小程序人脸核身后查询身份认证结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/selectIdentityAuthenticaRespon")
|
@PostMapping("/selectIdentityAuthenticaRespon")
|
||||||
public AjaxResult selectIdentityAuthenticaRespon(@Validated @RequestBody IdentityAuthentication ientityAuthentication)
|
public AjaxResult selectIdentityAuthenticaRespon(@Validated @RequestBody IdentityAuthentication ientityAuthentication) {
|
||||||
{
|
AjaxResult checkResult = identityAuthenticationService.selectIdentityAuthenticaRespon(ientityAuthentication);
|
||||||
String username = this.getUsername();
|
return checkResult;
|
||||||
Long userId = this.getUserId();
|
|
||||||
ientityAuthentication.setUserId(userId);
|
|
||||||
ientityAuthentication.setUserName(username);
|
|
||||||
IdentityAuthentication ientityAuthenticationRes = identityAuthenticationService.selectIdentityAuthenticaRespon( ientityAuthentication);
|
|
||||||
return success(ientityAuthenticationRes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -166,4 +166,4 @@ identityAuthentication:
|
|||||||
credentialSecretId: AKID3xfHgroY4MQHvLXUXMwIQL1UjmbBX1Tv
|
credentialSecretId: AKID3xfHgroY4MQHvLXUXMwIQL1UjmbBX1Tv
|
||||||
credentialSecretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
|
credentialSecretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
|
||||||
merchantId: 0NSJ2309281116194321
|
merchantId: 0NSJ2309281116194321
|
||||||
privateKeyHexDecodeinfo: MHcCAQEEIEw7MRv3uYlpmU6Fko4GlXSh6Vd38k0cUQZ5zDwvRg+voAoGCCqBHM9VAYItoUQDQgAEUdxIAWhGg4LUXf1GoPdb8XMbGudpexPQCuaaRi9BCnNbpaF1kcwRhhsBKvop9ZmW/nOz4wQ1r/iIEOrc9qCXgQ==
|
privateKeyHexDecodeinfo: 4c3b311bf7b98969994e85928e069574a1e95777f24d1c510679cc3c2f460faf
|
||||||
@@ -136,15 +136,15 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencentcloudapi</groupId>
|
<groupId>com.tencentcloudapi</groupId>
|
||||||
<artifactId>tencentcloud-sdk-java</artifactId>
|
<artifactId>tencentcloud-sdk-java</artifactId>
|
||||||
<version>3.1.270</version>
|
<version>3.1.876</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencentcloudapi</groupId>
|
<groupId>com.tencentcloudapi</groupId>
|
||||||
<artifactId>tencentcloud-sdk-java-faceid</artifactId>
|
<artifactId>tencentcloud-sdk-java-faceid</artifactId>
|
||||||
<version>3.1.871</version>
|
<version>3.1.875</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--用户信息解密-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.hutool</groupId>
|
<groupId>cn.hutool</groupId>
|
||||||
<artifactId>hutool-all</artifactId>
|
<artifactId>hutool-all</artifactId>
|
||||||
|
|||||||
+22
-3
@@ -1,15 +1,34 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.service;
|
package com.ruoyi.wisdomarbitrate.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
|
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
|
||||||
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
|
||||||
|
|
||||||
public interface IdentityAuthenticationService {
|
public interface IdentityAuthenticationService {
|
||||||
|
|
||||||
|
|
||||||
IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication);
|
IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是否已经认证的用户
|
||||||
|
*
|
||||||
|
* @param identityAuthentication
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String checkIsAuthentication(IdentityAuthentication identityAuthentication);
|
||||||
|
|
||||||
IdentityAuthentication selectIdentityAuthenticaEIDtoken();
|
/**
|
||||||
|
* 获取Eidtoken
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
JSONObject selectIdentityAuthenticaEIDtoken();
|
||||||
|
|
||||||
IdentityAuthentication selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication);
|
/**
|
||||||
|
* 小程序人脸核身后查询身份认证结果
|
||||||
|
*
|
||||||
|
* @param ientityAuthentication
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication);
|
||||||
}
|
}
|
||||||
|
|||||||
+148
-82
@@ -1,27 +1,27 @@
|
|||||||
package com.ruoyi.wisdomarbitrate.service.impl;
|
package com.ruoyi.wisdomarbitrate.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.codec.Base64;
|
||||||
import cn.hutool.crypto.SmUtil;
|
import cn.hutool.crypto.SmUtil;
|
||||||
import cn.hutool.crypto.asymmetric.SM2;
|
import cn.hutool.crypto.asymmetric.SM2;
|
||||||
import cn.hutool.crypto.symmetric.SymmetricCrypto;
|
import cn.hutool.crypto.symmetric.SymmetricCrypto;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
import com.ruoyi.exceptions.TradeException;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
|
import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
|
||||||
import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper;
|
import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper;
|
||||||
import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
|
|
||||||
import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
|
import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
|
||||||
|
|
||||||
import com.tencentcloudapi.common.Credential;
|
import com.tencentcloudapi.common.Credential;
|
||||||
|
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
||||||
import com.tencentcloudapi.common.profile.ClientProfile;
|
import com.tencentcloudapi.common.profile.ClientProfile;
|
||||||
import com.tencentcloudapi.common.profile.HttpProfile;
|
import com.tencentcloudapi.common.profile.HttpProfile;
|
||||||
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
|
||||||
import com.tencentcloudapi.faceid.v20180301.FaceidClient;
|
import com.tencentcloudapi.faceid.v20180301.FaceidClient;
|
||||||
import com.tencentcloudapi.faceid.v20180301.models.*;
|
import com.tencentcloudapi.faceid.v20180301.models.GetEidResultRequest;
|
||||||
|
import com.tencentcloudapi.faceid.v20180301.models.GetEidResultResponse;
|
||||||
|
import com.tencentcloudapi.faceid.v20180301.models.GetEidTokenRequest;
|
||||||
|
import com.tencentcloudapi.faceid.v20180301.models.GetEidTokenResponse;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -29,12 +29,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.io.FileInputStream;
|
import java.util.Date;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.Base64;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class IdentityAuthenticationServiceImpl implements IdentityAuthenticationService {
|
public class IdentityAuthenticationServiceImpl implements IdentityAuthenticationService {
|
||||||
@@ -58,9 +53,9 @@ public class IdentityAuthenticationServiceImpl implements IdentityAuthenticatio
|
|||||||
@Override
|
@Override
|
||||||
public IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication) {
|
public IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication) {
|
||||||
IdentityAuthentication identityAuthenticationselect = identityAuthenticationMapper.selectIdentityAuthentication(identityAuthentication);
|
IdentityAuthentication identityAuthenticationselect = identityAuthenticationMapper.selectIdentityAuthentication(identityAuthentication);
|
||||||
if(identityAuthenticationselect!=null){
|
if (identityAuthenticationselect != null) {
|
||||||
identityAuthenticationselect.setCertificationStatusName("已身份认证");
|
identityAuthenticationselect.setCertificationStatusName("已身份认证");
|
||||||
}else {
|
} else {
|
||||||
IdentityAuthentication identityAuthenticationselectnew = new IdentityAuthentication();
|
IdentityAuthentication identityAuthenticationselectnew = new IdentityAuthentication();
|
||||||
identityAuthenticationselectnew.setCertificationStatusName("未身份认证");
|
identityAuthenticationselectnew.setCertificationStatusName("未身份认证");
|
||||||
identityAuthenticationselectnew.setCertificationStatus(0);
|
identityAuthenticationselectnew.setCertificationStatus(0);
|
||||||
@@ -70,86 +65,157 @@ public class IdentityAuthenticationServiceImpl implements IdentityAuthenticatio
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是否已经认证的用户
|
||||||
|
*
|
||||||
|
* @param identityAuthentication
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IdentityAuthentication selectIdentityAuthenticaEIDtoken() {
|
public String checkIsAuthentication(IdentityAuthentication identityAuthentication) {
|
||||||
IdentityAuthentication identityAuthentication = new IdentityAuthentication();
|
IdentityAuthentication identityAuthenticationselect = identityAuthenticationMapper.selectIdentityAuthentication(identityAuthentication);
|
||||||
try{
|
if (identityAuthenticationselect != null) {
|
||||||
Credential authenti = new Credential(credentialSecretId, credentialSecretKey);
|
return "1";
|
||||||
HttpProfile httpProfileIdenAuth = new HttpProfile();
|
} else {
|
||||||
httpProfileIdenAuth.setEndpoint("faceid.tencentcloudapi.com");
|
return "0";
|
||||||
ClientProfile clientInv= new ClientProfile();
|
}
|
||||||
clientInv.setHttpProfile(httpProfileIdenAuth);
|
|
||||||
FaceidClient clientIdenAuth = new FaceidClient(authenti, "", clientInv);
|
|
||||||
// 实例化一个请求对象
|
|
||||||
GetEidTokenRequest reqest = new GetEidTokenRequest();
|
|
||||||
//设置请求参数
|
|
||||||
reqest.setMerchantId(merchantId);
|
|
||||||
GetEidTokenResponse respIdenAuth = clientIdenAuth.GetEidToken(reqest);
|
|
||||||
String respJSON = GetEidTokenResponse.toJsonString(respIdenAuth);
|
|
||||||
JSONObject objJSON = JSON.parseObject(respJSON);
|
|
||||||
String eidToken = objJSON.getString("EidToken");
|
|
||||||
String requestId = objJSON.getString("RequestId");
|
|
||||||
identityAuthentication.setEidToken(eidToken);
|
|
||||||
}catch (TencentCloudSDKException e) {
|
|
||||||
log.error("获取Eidtoke异常:", e);
|
|
||||||
throw new RuntimeException("获取Eidtoke异常");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return identityAuthentication;
|
/**
|
||||||
|
* 获取EIDtoken
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public JSONObject selectIdentityAuthenticaEIDtoken() {
|
||||||
|
JSONObject objJSON = new JSONObject();
|
||||||
|
objJSON.put("EidToken", "");
|
||||||
|
try {
|
||||||
|
Credential cred = new Credential(credentialSecretId, credentialSecretKey);
|
||||||
|
// 实例化一个http选项,可选的,没有特殊需求可以跳过
|
||||||
|
HttpProfile httpProfile = new HttpProfile();
|
||||||
|
httpProfile.setEndpoint("faceid.tencentcloudapi.com");
|
||||||
|
// 实例化一个client选项,可选的,没有特殊需求可以跳过
|
||||||
|
ClientProfile clientProfile = new ClientProfile();
|
||||||
|
clientProfile.setHttpProfile(httpProfile);
|
||||||
|
// 实例化要请求产品的client对象,clientProfile是可选的
|
||||||
|
FaceidClient client = new FaceidClient(cred, "", clientProfile);
|
||||||
|
// 实例化一个请求对象,每个接口都会对应一个request对象
|
||||||
|
GetEidTokenRequest req = new GetEidTokenRequest();
|
||||||
|
req.setMerchantId(merchantId);
|
||||||
|
// 返回的resp是一个GetEidTokenResponse的实例,与请求对象对应
|
||||||
|
GetEidTokenResponse resp = client.GetEidToken(req);
|
||||||
|
// 输出json格式的字符串回包
|
||||||
|
String respJSON = GetEidTokenResponse.toJsonString(resp);
|
||||||
|
objJSON = JSON.parseObject(respJSON);
|
||||||
|
} catch (TencentCloudSDKException e) {
|
||||||
|
System.out.println(e.toString());
|
||||||
|
System.out.println("获取Eidtoken失败");
|
||||||
|
}
|
||||||
|
return objJSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解密用户信息
|
||||||
|
*/
|
||||||
|
public JSONObject DecodeUserInfo(String deskey, String userInfo) {
|
||||||
|
JSONObject parse = null;
|
||||||
|
try {
|
||||||
|
byte[] desKeyBytes = Base64.decode(deskey);
|
||||||
|
final SM2 sm2 = new SM2(privateKeyHexDecodeinfo, null, null);
|
||||||
|
sm2.usePlainEncoding();
|
||||||
|
byte[] sm4KeyBytes = sm2.decrypt(desKeyBytes);
|
||||||
|
SymmetricCrypto sm4 = SmUtil.sm4(sm4KeyBytes);
|
||||||
|
byte[] plaintext = sm4.decrypt(Base64.decode(userInfo));
|
||||||
|
if (plaintext != null && plaintext.length > 0) {
|
||||||
|
String s = new String(plaintext);
|
||||||
|
parse = JSON.parseObject(s);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e.toString());
|
||||||
|
}
|
||||||
|
return parse;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序人脸核身后查询身份认证结果
|
||||||
|
*
|
||||||
|
* @param ientityAuthentication
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public IdentityAuthentication selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication) {
|
public AjaxResult selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication) {
|
||||||
String eidToken = ientityAuthentication.getEidToken();
|
String eidToken = ientityAuthentication.getEidToken();
|
||||||
Long userId = ientityAuthentication.getUserId();
|
|
||||||
String userName = ientityAuthentication.getUserName();
|
|
||||||
IdentityAuthentication IdentityAuthenticationRespon = new IdentityAuthentication();
|
|
||||||
IdentityAuthentication IdentityAuthenticationResult = new IdentityAuthentication();
|
|
||||||
if(StringUtils.isNotEmpty(eidToken)){
|
|
||||||
try{
|
|
||||||
Credential authenti = new Credential(credentialSecretId, credentialSecretKey);
|
|
||||||
HttpProfile httpProfileIdenAuth = new HttpProfile();
|
|
||||||
httpProfileIdenAuth.setEndpoint("faceid.tencentcloudapi.com");
|
|
||||||
ClientProfile clientInv= new ClientProfile();
|
|
||||||
clientInv.setHttpProfile(httpProfileIdenAuth);
|
|
||||||
FaceidClient clientIdenAuth = new FaceidClient(authenti, "", clientInv);
|
|
||||||
// 实例化一个请求对象
|
|
||||||
GetEidResultRequest reqest = new GetEidResultRequest();
|
|
||||||
//设置请求参数
|
|
||||||
reqest.setEidToken(eidToken);
|
|
||||||
|
|
||||||
// reqest.setInfoType("1");
|
try {
|
||||||
// reqest.setInfoType("13");
|
Credential cred = new Credential(credentialSecretId, credentialSecretKey);
|
||||||
// reqest.setInfoType("2");
|
// 实例化一个http选项,可选的,没有特殊需求可以跳过
|
||||||
|
HttpProfile httpProfile = new HttpProfile();
|
||||||
|
httpProfile.setEndpoint("faceid.tencentcloudapi.com");
|
||||||
|
// 实例化一个client选项,可选的,没有特殊需求可以跳过
|
||||||
|
ClientProfile clientProfile = new ClientProfile();
|
||||||
|
clientProfile.setHttpProfile(httpProfile);
|
||||||
|
// 实例化要请求产品的client对象,clientProfile是可选的
|
||||||
|
FaceidClient client = new FaceidClient(cred, "", clientProfile);
|
||||||
|
// 实例化一个请求对象,每个接口都会对应一个request对象
|
||||||
|
GetEidResultRequest req = new GetEidResultRequest();
|
||||||
|
req.setEidToken(eidToken);
|
||||||
|
// 返回的resp是一个GetEidResultResponse的实例,与请求对象对应
|
||||||
|
GetEidResultResponse resp = client.GetEidResult(req);
|
||||||
|
// 输出json格式的字符串回包
|
||||||
|
String s = GetEidResultResponse.toJsonString(resp);
|
||||||
|
JSONObject objJSON = JSON.parseObject(s);
|
||||||
|
//查看是否核验成功
|
||||||
|
JSONObject text = objJSON.getJSONObject("Text");
|
||||||
|
if (text != null) {
|
||||||
|
Integer comparestatus = text.getInteger("Comparestatus");
|
||||||
|
if (comparestatus != null && comparestatus == 0) {
|
||||||
|
JSONObject eidInfo = objJSON.getJSONObject("EidInfo");
|
||||||
|
if (eidInfo != null) {
|
||||||
|
String desKey = eidInfo.getString("DesKey");
|
||||||
|
String userInfo = eidInfo.getString("UserInfo");
|
||||||
|
//1.解密用户的信息
|
||||||
|
JSONObject info = DecodeUserInfo(desKey, userInfo);
|
||||||
|
if (info != null) {
|
||||||
|
String idcardno = info.getString("idnum");
|
||||||
|
String name = info.getString("name");
|
||||||
|
//2.在用户认证表中插入用户认证记录
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
|
IdentityAuthentication authentication = new IdentityAuthentication();
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
* 用户名id
|
||||||
|
* 姓名
|
||||||
|
* 身份证号
|
||||||
|
* 认证时间
|
||||||
|
* 认证状态0表示成功
|
||||||
|
* 请求id
|
||||||
|
*/
|
||||||
|
authentication.setUserName(loginUser.getUsername());
|
||||||
|
authentication.setUserId(loginUser.getUserId());
|
||||||
|
authentication.setName(name);
|
||||||
|
authentication.setIdentityNo(idcardno);
|
||||||
|
authentication.setCertificationTime(new Date());
|
||||||
|
authentication.setCertificationStatus(0);
|
||||||
|
authentication.setRequestId(objJSON.getString("RequestId"));
|
||||||
|
try {
|
||||||
|
identityAuthenticationMapper.insertIdentityAuthentication(authentication);
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("认证记录新增失败");
|
||||||
|
}
|
||||||
|
|
||||||
//获得身份认证结果
|
}
|
||||||
GetEidResultResponse respIdenAuth = clientIdenAuth.GetEidResult(reqest);
|
|
||||||
String respJSON = GetEidResultResponse.toJsonString(respIdenAuth);
|
|
||||||
JSONObject objJSON = JSON.parseObject(respJSON);
|
|
||||||
IdentityAuthenticationRespon.setCertificationStatus(1);
|
|
||||||
IdentityAuthenticationRespon.setUserName(userName);
|
|
||||||
IdentityAuthenticationRespon.setUserId(userId);
|
|
||||||
|
|
||||||
JSONObject objEidInfo = JSON.parseObject(objJSON.getString("EidInfo"));
|
}
|
||||||
// identityAuthenticationMapper.insertIdentityAuthentication(IdentityAuthenticationRespon);
|
}
|
||||||
IdentityAuthenticationResult.setCertificationStatus(1);
|
}
|
||||||
IdentityAuthenticationResult.setCertificationStatusName("认证成功");
|
return AjaxResult.success();
|
||||||
} catch (TencentCloudSDKException e) {
|
} catch (TencentCloudSDKException e) {
|
||||||
log.error("认证失败:", e);
|
System.out.println(e.toString());
|
||||||
throw new RuntimeException("认证失败");
|
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return IdentityAuthenticationResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user