Search in sources :

Example 1 with SamlRequestTooOldException

use of uk.gov.ida.saml.hub.exception.SamlRequestTooOldException in project verify-hub by alphagov.

the class SamlEngineExceptionMapperTest method shouldHandleSamlRequestTooOldExceptionCorrectly.

@Test
public void shouldHandleSamlRequestTooOldExceptionCorrectly() throws Exception {
    SamlTransformationErrorException exception = new SamlRequestTooOldException("error", new RuntimeException(), Level.DEBUG);
    final Response response = samlEngineExceptionMapper.toResponse(exception);
    ErrorStatusDto responseEntity = (ErrorStatusDto) response.getEntity();
    assertThat(response.getStatus()).isEqualTo(Response.Status.BAD_REQUEST.getStatusCode());
    assertThat(responseEntity.isAudited()).isFalse();
    assertThat(responseEntity.getExceptionType()).isEqualTo(ExceptionType.INVALID_SAML_REQUEST_TOO_OLD);
    checkLogLevel(exception.getLogLevel());
}
Also used : Response(javax.ws.rs.core.Response) ErrorStatusDto(uk.gov.ida.common.ErrorStatusDto) SamlTransformationErrorException(uk.gov.ida.saml.core.validation.SamlTransformationErrorException) SamlRequestTooOldException(uk.gov.ida.saml.hub.exception.SamlRequestTooOldException) Test(org.junit.Test)

Example 2 with SamlRequestTooOldException

use of uk.gov.ida.saml.hub.exception.SamlRequestTooOldException in project verify-hub by alphagov.

the class SamlEngineExceptionMapper method toResponse.

@Override
public Response toResponse(Exception exception) {
    final UUID errorId = UUID.randomUUID();
    Response.ResponseBuilder response = Response.status(Response.Status.BAD_REQUEST);
    if (exception instanceof ApplicationException) {
        ApplicationException applicationException = (ApplicationException) exception;
        response.entity(logAndGetErrorStatusDto(applicationException.getExceptionType().getLevel(), applicationException.getExceptionType(), applicationException, applicationException.getErrorId(), applicationException.isAudited()));
    } else if (exception instanceof SamlContextException) {
        SamlContextException contextException = (SamlContextException) exception;
        response.entity(logAndGetErrorStatusDto(contextException.getLogLevel(), contextException.getExceptionType(), exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else if (exception instanceof SamlFailedToDecryptException) {
        response.entity(logAndGetErrorStatusDto(((SamlFailedToDecryptException) exception).getLogLevel(), ExceptionType.INVALID_SAML_FAILED_TO_DECRYPT, exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else if (exception instanceof SamlDuplicateRequestIdException) {
        response.entity(logAndGetErrorStatusDto(((SamlDuplicateRequestIdException) exception).getLogLevel(), ExceptionType.INVALID_SAML_DUPLICATE_REQUEST_ID, exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else if (exception instanceof SamlRequestTooOldException) {
        response.entity(logAndGetErrorStatusDto(((SamlTransformationErrorException) exception).getLogLevel(), ExceptionType.INVALID_SAML_REQUEST_TOO_OLD, exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else if (exception instanceof SamlTransformationErrorException) {
        response.entity(logAndGetErrorStatusDto(((SamlTransformationErrorException) exception).getLogLevel(), ExceptionType.INVALID_SAML, exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else if (exception instanceof UnableToGenerateSamlException) {
        response.entity(logAndGetErrorStatusDto(((UnableToGenerateSamlException) exception).getLogLevel(), ExceptionType.INVALID_INPUT, exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else if (exception instanceof NoKeyConfiguredForEntityException) {
        response.entity(logAndGetErrorStatusDto(ERROR, ExceptionType.NO_KEY_CONFIGURED_FOR_ENTITY, exception, errorId, HAS_NOT_BEEN_AUDITED_YET));
    } else {
        levelLogger.log(WARN, exception, errorId);
    }
    return response.build();
}
Also used : Response(javax.ws.rs.core.Response) ApplicationException(uk.gov.ida.exceptions.ApplicationException) SamlTransformationErrorException(uk.gov.ida.saml.core.validation.SamlTransformationErrorException) NoKeyConfiguredForEntityException(uk.gov.ida.saml.metadata.exceptions.NoKeyConfiguredForEntityException) UUID(java.util.UUID) SamlDuplicateRequestIdException(uk.gov.ida.saml.hub.exception.SamlDuplicateRequestIdException) SamlRequestTooOldException(uk.gov.ida.saml.hub.exception.SamlRequestTooOldException) SamlFailedToDecryptException(uk.gov.ida.saml.security.exception.SamlFailedToDecryptException)

Example 3 with SamlRequestTooOldException

use of uk.gov.ida.saml.hub.exception.SamlRequestTooOldException in project verify-hub by alphagov.

the class SamlProxySamlTransformationErrorExceptionMapperTest method shouldCreateAuditedErrorResponseForRequestTooOldError.

@Test
public void shouldCreateAuditedErrorResponseForRequestTooOldError() throws Exception {
    Response response = exceptionMapper.handleException(new SamlRequestTooOldException("error", new RuntimeException(), Level.DEBUG));
    ErrorStatusDto responseEntity = (ErrorStatusDto) response.getEntity();
    assertThat(response.getStatus()).isEqualTo(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
    assertThat(responseEntity.isAudited()).isTrue();
    assertThat(responseEntity.getExceptionType()).isEqualTo(ExceptionType.INVALID_SAML_REQUEST_TOO_OLD);
}
Also used : Response(javax.ws.rs.core.Response) ErrorStatusDto(uk.gov.ida.common.ErrorStatusDto) SamlRequestTooOldException(uk.gov.ida.saml.hub.exception.SamlRequestTooOldException) Test(org.junit.Test)

Aggregations

Response (javax.ws.rs.core.Response)3 SamlRequestTooOldException (uk.gov.ida.saml.hub.exception.SamlRequestTooOldException)3 Test (org.junit.Test)2 ErrorStatusDto (uk.gov.ida.common.ErrorStatusDto)2 SamlTransformationErrorException (uk.gov.ida.saml.core.validation.SamlTransformationErrorException)2 UUID (java.util.UUID)1 ApplicationException (uk.gov.ida.exceptions.ApplicationException)1 SamlDuplicateRequestIdException (uk.gov.ida.saml.hub.exception.SamlDuplicateRequestIdException)1 NoKeyConfiguredForEntityException (uk.gov.ida.saml.metadata.exceptions.NoKeyConfiguredForEntityException)1 SamlFailedToDecryptException (uk.gov.ida.saml.security.exception.SamlFailedToDecryptException)1