X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/6e325de226fd930dae481a13ba80e002c6214a74..refs/pull/3693/head:/app/Http/Controllers/Auth/OidcController.php diff --git a/app/Http/Controllers/Auth/OidcController.php b/app/Http/Controllers/Auth/OidcController.php index ff93dd803..78a47e488 100644 --- a/app/Http/Controllers/Auth/OidcController.php +++ b/app/Http/Controllers/Auth/OidcController.php @@ -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(); }