]> BookStack Code Mirror - bookstack/commitdiff
Log failed accesses
authorbenrubson <redacted>
Sun, 9 Feb 2020 09:01:33 +0000 (10:01 +0100)
committerbenrubson <redacted>
Sun, 9 Feb 2020 09:01:33 +0000 (10:01 +0100)
app/Http/Controllers/Auth/LoginController.php

index ea584a3b6f0427f92c271fa8924bff4a5796edb9..75ade74e716aa35cb544092ef5fa7ff933c100b6 100644 (file)
@@ -101,6 +101,9 @@ class LoginController extends Controller
             $this->hasTooManyLoginAttempts($request)) {
             $this->fireLockoutEvent($request);
 
+            // Also log some error message
+            $this->logFailedAccess($request);
+
             return $this->sendLockoutResponse($request);
         }
 
@@ -117,6 +120,9 @@ class LoginController extends Controller
         // user surpasses their maximum number of attempts they will get locked out.
         $this->incrementLoginAttempts($request);
 
+        // Also log some error message
+        $this->logFailedAccess($request);
+
         return $this->sendFailedLoginResponse($request);
     }
 
@@ -162,4 +168,16 @@ class LoginController extends Controller
         return redirect('/login');
     }
 
+    /**
+     * Log failed accesses, matching the default fail2ban nginx/apache auth rules.
+     */
+    protected function logFailedAccess(Request $request)
+    {
+        if (isset($_SERVER['SERVER_SOFTWARE']) && preg_match('/nginx/i', $_SERVER['SERVER_SOFTWARE'])) {
+             error_log('user "' . $request->get($this->username()) . '" was not found in "BookStack"', 4);
+         } else {
+             error_log('user "' . $request->get($this->username()) . '" authentication failure for "BookStack"', 4);
+         }
+    }
+
 }