fix: 校验证书取值
parent
e277a97b5c
commit
7b3a20a15a
|
|
@ -50,9 +50,9 @@ public final class DefaultValidator implements Validator {
|
||||||
public void validate(HttpRequest newRequest) {
|
public void validate(HttpRequest newRequest) {
|
||||||
// 校验证书
|
// 校验证书
|
||||||
CertificateProvider provider = getProfile().getSignature().getCertificateProvider();
|
CertificateProvider provider = getProfile().getSignature().getCertificateProvider();
|
||||||
Signer signer = getProfile().getSignature().getSigner();
|
PrivacyEncryptor encryptor = getProfile().getPrivacy().getEncryptor();
|
||||||
if (!provider.isAvailableCertificate(signer.getCertificateSerial())) {
|
if (!provider.isAvailableCertificate(encryptor.getCertificateSerial())) {
|
||||||
throw new ValidationException(String.format("证书已失效, 序列号:%s", signer.getCertificateSerial()));
|
throw new ValidationException(String.format("证书已失效, 序列号:%s", encryptor.getCertificateSerial()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -322,6 +322,6 @@ class DefaultValidatorTest {
|
||||||
|
|
||||||
DefaultValidator defaultValidator = new DefaultValidator(buildProfileInvalid());
|
DefaultValidator defaultValidator = new DefaultValidator(buildProfileInvalid());
|
||||||
ValidationException exception = Assertions.assertThrows(ValidationException.class, () -> defaultValidator.validate(null));
|
ValidationException exception = Assertions.assertThrows(ValidationException.class, () -> defaultValidator.validate(null));
|
||||||
Assertions.assertEquals("证书已失效, 序列号:823CF3E310F2E2ED1AF85506E74A95DC4301006FDEF2FD019953FAF4DE12A8BF", exception.getMessage());
|
Assertions.assertEquals("证书已失效, 序列号:6CDDAA92CAD75998325027647847330C1756291", exception.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -104,7 +104,7 @@ class ApacheHttpclientValidTest {
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
ValidationException exception = Assertions.assertThrows(ValidationException.class, () -> apiClient.post("/mock/invalid", headers, requestBody, TestResponse.class));
|
ValidationException exception = Assertions.assertThrows(ValidationException.class, () -> apiClient.post("/mock/invalid", headers, requestBody, TestResponse.class));
|
||||||
Assertions.assertEquals("证书已失效, 序列号:823CF3E310F2E2ED1AF85506E74A95DC4301006FDEF2FD019953FAF4DE12A8BF", exception.getMessage());
|
Assertions.assertEquals("证书已失效, 序列号:6CDDAA92CAD75998325027647847330C1756291", exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.czcb.scfs.api.service.cipher;
|
||||||
import com.czcb.scfs.api.core.cipher.*;
|
import com.czcb.scfs.api.core.cipher.*;
|
||||||
|
|
||||||
import java.security.PrivateKey;
|
import java.security.PrivateKey;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
|
||||||
public class TestPrivacy implements Privacy {
|
public class TestPrivacy implements Privacy {
|
||||||
// 对称加密/解密器
|
// 对称加密/解密器
|
||||||
|
|
@ -14,7 +15,8 @@ public class TestPrivacy implements Privacy {
|
||||||
|
|
||||||
public TestPrivacy(PrivateKey privateKey, CertificateProvider certificateProvider) {
|
public TestPrivacy(PrivateKey privateKey, CertificateProvider certificateProvider) {
|
||||||
this.secretCipher = new TestSecretCipher();
|
this.secretCipher = new TestSecretCipher();
|
||||||
this.privacyEncryptor = new TestPrivacyEncryptor(certificateProvider.getAvailableCertificate().getPublicKey());
|
X509Certificate certificate = certificateProvider.getAvailableCertificate();
|
||||||
|
this.privacyEncryptor = new TestPrivacyEncryptor(certificateProvider.getAvailableCertificate().getPublicKey(), certificate.getSerialNumber().toString(16).toUpperCase());
|
||||||
this.privacyDecryptor = new TestPrivacyDecryptor(privateKey);
|
this.privacyDecryptor = new TestPrivacyDecryptor(privateKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ public class TestPrivacyEncryptor extends AbstractPrivacyEncryptor {
|
||||||
*
|
*
|
||||||
* @param publicKey 加密使用的公钥
|
* @param publicKey 加密使用的公钥
|
||||||
*/
|
*/
|
||||||
protected TestPrivacyEncryptor(PublicKey publicKey) {
|
protected TestPrivacyEncryptor(PublicKey publicKey, String certificateSerial) {
|
||||||
super("RSA/ECB/OAEPWithSHA-1AndMGF1Padding", publicKey, null, "");
|
super("RSA/ECB/OAEPWithSHA-1AndMGF1Padding", publicKey, null, certificateSerial);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue