From 787eceee8c2621b80d5b0a0e27f66c2aa424aa52 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Wed, 14 Nov 2018 15:23:44 -0500 Subject: [PATCH] LTI reject non-numeric value in replace service - refs BT#13469 --- plugin/ims_lti/src/ImsLtiServiceReplaceRequest.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugin/ims_lti/src/ImsLtiServiceReplaceRequest.php b/plugin/ims_lti/src/ImsLtiServiceReplaceRequest.php index f6b27cab5f..67569ccd93 100644 --- a/plugin/ims_lti/src/ImsLtiServiceReplaceRequest.php +++ b/plugin/ims_lti/src/ImsLtiServiceReplaceRequest.php @@ -26,7 +26,17 @@ class ImsLtiServiceReplaceRequest extends ImsLtiServiceRequest { $resultRecord = $this->xmlRequest->resultRecord; $sourcedId = (string) $resultRecord->sourcedGUID->sourcedId; - $resultScore = (float) $resultRecord->result->resultScore->textString; + $resultScore = (string) $resultRecord->result->resultScore->textString; + + if (!is_numeric($resultScore)) { + $this->statusInfo + ->setSeverity(ImsLtiServiceResponseStatus::SEVERITY_ERROR) + ->setCodeMajor(ImsLtiServiceResponseStatus::CODEMAJOR_FAILURE); + + return; + } + + $resultScore = (float) $resultScore; if (0 > $resultScore || 1 < $resultScore) { $this->statusInfo