Ver Fonte

Update DangerZone middleware to skip sudo mode for OIDC configurations. Fixes #6057

Daniel Supernault há 1 semana atrás
pai
commit
062ec55207
1 ficheiros alterados com 19 adições e 9 exclusões
  1. 19 9
      app/Http/Middleware/DangerZone.php

+ 19 - 9
app/Http/Middleware/DangerZone.php

@@ -2,8 +2,9 @@
 
 namespace App\Http\Middleware;
 
-use App, Auth, Closure;
+use Auth;
 use Carbon\Carbon;
+use Closure;
 
 class DangerZone
 {
@@ -16,25 +17,34 @@ class DangerZone
      */
     public function handle($request, Closure $next)
     {
-        if( $request->session()->get('sudoModeAttempts') > 3) {
+        if (config('remote-auth.oidc.enabled')) {
+            // Skip for OIDC/LDAP
+            return $next($request);
+        }
+
+        if ($request->session()->get('sudoModeAttempts') > 3) {
             $request->session()->pull('redirectNext');
             $request->session()->pull('sudoModeAttempts');
             Auth::logout();
+
             return redirect(route('login'));
-        } 
-        if(!Auth::check()) {
+        }
+        if (! Auth::check()) {
             return redirect(route('login'));
         }
-        if(!$request->is('i/auth/sudo') && $request->session()->get('sudoTrustDevice') != 1) {
-            if( !$request->session()->has('sudoMode') ) {
+        if (! $request->is('i/auth/sudo') && $request->session()->get('sudoTrustDevice') != 1) {
+            if (! $request->session()->has('sudoMode')) {
                 $request->session()->put('redirectNext', $request->url());
+
                 return redirect('/i/auth/sudo');
-            } 
-            if( $request->session()->get('sudoMode') < Carbon::now()->subMinutes(30)->timestamp ) {
+            }
+            if ($request->session()->get('sudoMode') < Carbon::now()->subMinutes(30)->timestamp) {
                 $request->session()->put('redirectNext', $request->url());
+
                 return redirect('/i/auth/sudo');
-            } 
+            }
         }
+
         return $next($request);
     }
 }