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());
}
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();
}
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);
}
Aggregations