diff options
author | Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com> | 2021-07-14 09:45:18 +0200 |
---|---|---|
committer | Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com> | 2021-07-19 06:46:32 +0000 |
commit | 59d3b4a3351a8146a562bbda2ebb9e8b4b5f0e3e (patch) | |
tree | ba09fe82d98891f1d06bcb82f4d2bb21e5d49b81 | |
parent | c386b2b9fbf44de105f68ffa87bdcb3328e9c6ee (diff) |
[OOM-CERT-SERVICE] Add CertificateDecriptionException handler
Issue-ID: OOM-2753
Signed-off-by: Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>
Change-Id: If4f705b11cdaf1c98f49875b40eb970563d4c3dd
2 files changed, 26 insertions, 0 deletions
diff --git a/certService/src/main/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdvice.java b/certService/src/main/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdvice.java index 1c6c3a0a..e3fa1cb2 100644 --- a/certService/src/main/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdvice.java +++ b/certService/src/main/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdvice.java @@ -22,6 +22,7 @@ package org.onap.oom.certservice.api.advice; import org.onap.oom.certservice.api.CertificationController; +import org.onap.oom.certservice.certification.exception.CertificateDecryptionException; import org.onap.oom.certservice.certification.exception.Cmpv2ClientAdapterException; import org.onap.oom.certservice.certification.exception.Cmpv2ServerNotFoundException; import org.onap.oom.certservice.certification.exception.CsrDecryptionException; @@ -59,6 +60,15 @@ public final class CertificationExceptionAdvice { ); } + @ExceptionHandler(value = CertificateDecryptionException.class) + public ResponseEntity<ErrorResponseModel> handle(CertificateDecryptionException exception) { + LOGGER.error("Exception occurred decoding certificate:", exception); + return getErrorResponseEntity( + "Wrong certificate format", + HttpStatus.BAD_REQUEST + ); + } + @ExceptionHandler(value = Cmpv2ServerNotFoundException.class) public ResponseEntity<ErrorResponseModel> handle(Cmpv2ServerNotFoundException exception) { LOGGER.error("Exception occurred selecting CMPv2 server:", exception); diff --git a/certService/src/test/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdviceTest.java b/certService/src/test/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdviceTest.java index 9e6a6ced..698ded80 100644 --- a/certService/src/test/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdviceTest.java +++ b/certService/src/test/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdviceTest.java @@ -27,6 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.onap.oom.certservice.certification.exception.CertificateDecryptionException; import org.onap.oom.certservice.certification.exception.Cmpv2ClientAdapterException; import org.onap.oom.certservice.certification.exception.Cmpv2ServerNotFoundException; import org.onap.oom.certservice.certification.exception.CsrDecryptionException; @@ -146,4 +147,19 @@ class CertificationExceptionAdviceTest { assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode()); assertTrue(response.getBody().getErrorMessage().startsWith(expectedMessage)); } + + @Test + void shouldReturnResponseEntityWithCertificateDecryptionMessage() { + // Given + String expectedMessage = "Wrong certificate format"; + CertificateDecryptionException exception = new CertificateDecryptionException("Incorrect certificate, decryption failed"); + + // When + ResponseEntity<ErrorResponseModel> response = certificationExceptionAdvice.handle(exception); + + // Then + assertEquals(HttpStatus.BAD_REQUEST, response.getStatusCode()); + assertEquals(expectedMessage, response.getBody().getErrorMessage()); + } + } |