Added tests to cover saml and added controller middleware

This commit is contained in:
Dan Brown 2019-11-17 19:15:37 +00:00
parent ebb3724892
commit c33ef4b9b2
No known key found for this signature in database
GPG key ID: 46D9F943C24A2EF9
3 changed files with 284 additions and 10 deletions

View file

@ -4,7 +4,6 @@ namespace BookStack\Http\Controllers\Auth;
use BookStack\Auth\Access\Saml2Service; use BookStack\Auth\Access\Saml2Service;
use BookStack\Http\Controllers\Controller; use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
class Saml2Controller extends Controller class Saml2Controller extends Controller
{ {
@ -18,6 +17,15 @@ class Saml2Controller extends Controller
{ {
parent::__construct(); parent::__construct();
$this->samlService = $samlService; $this->samlService = $samlService;
// SAML2 access middleware
$this->middleware(function ($request, $next) {
if (!config('saml2.enabled')) {
$this->showPermissionError();
}
return $next($request);
});
} }
/** /**

View file

@ -217,7 +217,6 @@ Route::get('/register/confirm/{token}', 'Auth\ConfirmEmailController@confirm');
Route::post('/register', 'Auth\RegisterController@postRegister'); Route::post('/register', 'Auth\RegisterController@postRegister');
// SAML routes // SAML routes
// TODO - Prevent access without SAML2 enabled via middleware
Route::get('/saml2/login', 'Auth\Saml2Controller@login'); Route::get('/saml2/login', 'Auth\Saml2Controller@login');
Route::get('/saml2/logout', 'Auth\Saml2Controller@logout'); Route::get('/saml2/logout', 'Auth\Saml2Controller@logout');
Route::get('/saml2/metadata', 'Auth\Saml2Controller@metadata'); Route::get('/saml2/metadata', 'Auth\Saml2Controller@metadata');

File diff suppressed because one or more lines are too long