]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/Auth/OidcController.php
Fixed failing test after drawio default url change
[bookstack] / app / Http / Controllers / Auth / OidcController.php
index ff93dd803aa822b82138d81332cd28125821b504..78a47e4888f55a3eb25232ae13acc7a88dce981c 100644 (file)
@@ -2,13 +2,14 @@
 
 namespace BookStack\Http\Controllers\Auth;
 
+use BookStack\Auth\Access\Oidc\OidcException;
 use BookStack\Auth\Access\Oidc\OidcService;
 use BookStack\Http\Controllers\Controller;
 use Illuminate\Http\Request;
 
 class OidcController extends Controller
 {
-    protected $oidcService;
+    protected OidcService $oidcService;
 
     /**
      * OpenIdController constructor.
@@ -24,7 +25,14 @@ class OidcController extends Controller
      */
     public function login()
     {
-        $loginDetails = $this->oidcService->login();
+        try {
+            $loginDetails = $this->oidcService->login();
+        } catch (OidcException $exception) {
+            $this->showErrorNotification($exception->getMessage());
+
+            return redirect('/login');
+        }
+
         session()->flash('oidc_state', $loginDetails['state']);
 
         return redirect($loginDetails['url']);
@@ -45,7 +53,13 @@ class OidcController extends Controller
             return redirect('/login');
         }
 
-        $this->oidcService->processAuthorizeResponse($request->query('code'));
+        try {
+            $this->oidcService->processAuthorizeResponse($request->query('code'));
+        } catch (OidcException $oidcException) {
+            $this->showErrorNotification($oidcException->getMessage());
+
+            return redirect('/login');
+        }
 
         return redirect()->intended();
     }