|
|
|
|
@ -7,6 +7,9 @@ import com.yau.digitalrmb.institutionidentity.application.CurrencyGenerationVeri
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.CurrencyQuotaVerificationResult;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.CurrencyGenerationVerificationService;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.InstitutionKeySubject;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.OperationBooleanResult;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.OperationMessageResult;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.OperationStatusResult;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.application.SignatureResult;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.interfaces.dto.CalculateCurrencyDigestRequest;
|
|
|
|
|
import com.yau.digitalrmb.institutionidentity.interfaces.dto.ConfirmCurrencyRequest;
|
|
|
|
|
@ -33,20 +36,24 @@ public class CurrencyGenerationVerificationController {
|
|
|
|
|
@PostMapping("/steps/receive")
|
|
|
|
|
@Operation(summary = "接收步骤二请求报文",
|
|
|
|
|
description = "对应页面“接收步骤二请求报文”按钮。步骤二必须达到RECEIVED;重复点击时复用verificationId,并将步骤三恢复到RECEIVED,清空后续按钮产生的数据。")
|
|
|
|
|
public ApiResponse<CurrencyGenerationVerificationResult> receive(
|
|
|
|
|
public ApiResponse<OperationStatusResult> receive(
|
|
|
|
|
@Valid @RequestBody ReceiveCurrencyVerificationRequest request) {
|
|
|
|
|
JwtUser user = AuthContextHolder.get();
|
|
|
|
|
return ok(service.receive(request.getRequestId(), InstitutionKeySubject.from(user), user.getUsername()));
|
|
|
|
|
CurrencyGenerationVerificationResult result = service.receive(request.getRequestId(),
|
|
|
|
|
InstitutionKeySubject.from(user), user.getUsername());
|
|
|
|
|
return ApiResponse.success(new OperationStatusResult(result.getStatus()), MDC.get(TraceIdFilter.MDC_KEY));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/steps/verify-signature")
|
|
|
|
|
@Operation(summary = "第二公钥SM2验证",
|
|
|
|
|
description = "对应页面“第二公钥SM2验证”按钮。前端传当前实训主体的商业银行第二公钥完整值,后端校验公钥归属,并使用该第二公钥执行SM2_Verify(摘要值, 签名值)。")
|
|
|
|
|
public ApiResponse<CurrencyGenerationVerificationResult> verifySignature(
|
|
|
|
|
public ApiResponse<OperationBooleanResult> verifySignature(
|
|
|
|
|
@Valid @RequestBody CurrencyVerificationStepRequest request) {
|
|
|
|
|
JwtUser user = AuthContextHolder.get();
|
|
|
|
|
return ok(service.verifySignature(request.getVerificationId(), request.getPublicKey(),
|
|
|
|
|
InstitutionKeySubject.from(user), user.getUsername()));
|
|
|
|
|
CurrencyGenerationVerificationResult result = service.verifySignature(request.getVerificationId(),
|
|
|
|
|
request.getPublicKey(), InstitutionKeySubject.from(user), user.getUsername());
|
|
|
|
|
return ApiResponse.success(new OperationBooleanResult(Boolean.TRUE.equals(result.getSignatureValid())),
|
|
|
|
|
MDC.get(TraceIdFilter.MDC_KEY));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/steps/calculate-digest")
|
|
|
|
|
@ -62,11 +69,13 @@ public class CurrencyGenerationVerificationController {
|
|
|
|
|
|
|
|
|
|
@PostMapping("/steps/match-digest")
|
|
|
|
|
@Operation(summary = "匹配摘要一和摘要二", description = "对应页面“匹配”按钮,比较重算摘要一与请求报文摘要二。")
|
|
|
|
|
public ApiResponse<CurrencyGenerationVerificationResult> matchDigest(
|
|
|
|
|
public ApiResponse<OperationBooleanResult> matchDigest(
|
|
|
|
|
@Valid @RequestBody CurrencyVerificationStepRequest request) {
|
|
|
|
|
JwtUser user = AuthContextHolder.get();
|
|
|
|
|
return ok(service.matchDigest(request.getVerificationId(),
|
|
|
|
|
InstitutionKeySubject.from(user), user.getUsername()));
|
|
|
|
|
CurrencyGenerationVerificationResult result = service.matchDigest(request.getVerificationId(),
|
|
|
|
|
InstitutionKeySubject.from(user), user.getUsername());
|
|
|
|
|
return ApiResponse.success(new OperationBooleanResult(Boolean.TRUE.equals(result.getDigestMatches())),
|
|
|
|
|
MDC.get(TraceIdFilter.MDC_KEY));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/steps/verify-quota")
|
|
|
|
|
|