From a8118a14cd20120ca7168f8ae5162e22ade48573 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Zubcevic?= <rene@zubcevic.com>
Date: Fri, 21 Feb 2020 12:50:32 +0100
Subject: [PATCH] add support for status 403 feedback from e.g. ModSecurity/CRS

---
 .../js/goatApp/view/LessonContentView.js      | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js b/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js
index a9a8779b4..ea7a77d70 100644
--- a/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js
+++ b/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js
@@ -113,12 +113,16 @@ define(['jquery',
                 //complete: function (data) {
                     //callbackFunction(data);
                 //}
-            }).then(function(data){
-                 self.onSuccessResponse(data, failureCallbackFunctionName, successCallBackFunctionName)}, self.onErrorResponse.bind(self));
+            }).then(
+            		function(data){
+                 self.onSuccessResponse(data, failureCallbackFunctionName, successCallBackFunctionName)
+                 }, 
+                 self.onErrorResponse.bind(self)
+                 );
             return false;
          },
 
-        onSuccessResponse: function(data, failureCallbackFunctionName, successCallBackFunctionName) {
+        onSuccessResponse: function(data, failureCallbackFunctionName, successCallBackFunctionName) {        	
             this.renderFeedback(data.feedback);
             this.renderOutput(data.output || "");
 
@@ -147,10 +151,15 @@ define(['jquery',
             $(this.curForm).siblings('.assignment-success').find('i').addClass('hidden');
         },
 
-        onErrorResponse: function (a,b,c) {
-            console.error(a);
+        onErrorResponse: function (data,b,c) {
+        	console.error(data);
+        	if (data.status == 403) {
+        		this.renderFeedback(data.responseText);
+        	}
+            
             console.error(b);
             console.error(c);
+            
             return false;
         },