StudentAffairsUWM / Laravel-Shibboleth-Service-Provider

Shibboleth Authentication for Laravel
https://packagist.org/packages/saitswebuwm/shibboleth
30 stars 37 forks source link

Authentication user provider [shibboleth] is not defined. #23

Open jpuck opened 7 years ago

jpuck commented 7 years ago

App won't load when changing the driver, so I'm not sure what I'm missing.

Using laravel 5.3

composer require saitswebuwm/shibboleth ^1.1 installed no problem.

vendor published migrations ran no problem and tables created in database.

config/app.php

    'providers' => [
        ...
        StudentAffairsUwm\Shibboleth\ShibbolethServiceProvider::class,
        ...
    ],

config/auth.php

    'providers' => [
        'users' => [
            'driver' => 'shibboleth',
            'model' => App\User::class,
        ],
    ],
    'group_model' => 'App\Group',

What am I missing? Thanks

cjmaio commented 7 years ago

Are any error messages being thrown by Laravel?

jpuck commented 7 years ago

Hi @cjmaio thanks for getting back to me so quickly. Yes, the error message is the subject of my issue. Here's the full error for completeness:

Whoops, looks like something went wrong.

2/2 ErrorException in CreatesUserProviders.php line 40: Authentication user provider [shibboleth] is not defined. (View: /home/xenial/scratch/esreq/resources/views/welcome.blade.php)

  1. in CreatesUserProviders.php line 40
  2. at CompilerEngine->handleViewException(object(InvalidArgumentException), '1') in PhpEngine.php line 44
  3. at PhpEngine->evaluatePath('/home/xenial/scratch/esreq/storage/framework/views/bfde2d9fa87e2fe87acd378b946dcc8b433661fa.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag))) in CompilerEngine.php line 59
  4. at CompilerEngine->get('/home/xenial/scratch/esreq/resources/views/welcome.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag))) in View.php line 149
  5. at View->getContents() in View.php line 120
  6. at View->renderContents() in View.php line 85
  7. at View->render() in Response.php line 45
  8. at Response->setContent(object(View)) in Response.php line 201
  9. at Response->__construct(object(View)) in Router.php line 1017
  10. at Router->prepareResponse(object(Request), object(View)) in Router.php line 642
  11. at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 53
  12. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
  13. at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 137
  14. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  15. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
  16. at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137
  17. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  18. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
  19. at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
  20. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  21. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
  22. at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
  23. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  24. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
  25. at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 137
  26. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  27. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
  28. at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 137
  29. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  30. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
  31. at Pipeline->then(object(Closure)) in Router.php line 644
  32. at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 618
  33. at Router->dispatchToRoute(object(Request)) in Router.php line 596
  34. at Router->dispatch(object(Request)) in Kernel.php line 268
  35. at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
  36. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
  37. at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
  38. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  39. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
  40. at Pipeline->then(object(Closure)) in Kernel.php line 150
  41. at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117
  42. at Kernel->handle(object(Request)) in index.php line 53

1/2 InvalidArgumentException in CreatesUserProviders.php line 40: Authentication user provider [shibboleth] is not defined.

  1. in CreatesUserProviders.php line 40
  2. at AuthManager->createUserProvider('users') in AuthManager.php line 123
  3. at AuthManager->createSessionDriver('web', array('driver' => 'session', 'provider' => 'users')) in AuthManager.php line 96
  4. at AuthManager->resolve('web') in AuthManager.php line 70
  5. at AuthManager->guard() in AuthManager.php line 294
  6. at AuthManager->__call('guest', array()) in Facade.php line 237
  7. at Facade::__callStatic('guest', array()) in bfde2d9fa87e2fe87acd378b946dcc8b433661fa.php line 4
  8. at include('/home/xenial/scratch/esreq/storage/framework/views/bfde2d9fa87e2fe87acd378b946dcc8b433661fa.php') in PhpEngine.php line 42
  9. at PhpEngine->evaluatePath('/home/xenial/scratch/esreq/storage/framework/views/bfde2d9fa87e2fe87acd378b946dcc8b433661fa.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag))) in CompilerEngine.php line 59
  10. at CompilerEngine->get('/home/xenial/scratch/esreq/resources/views/welcome.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag))) in View.php line 149
  11. at View->getContents() in View.php line 120
  12. at View->renderContents() in View.php line 85
  13. at View->render() in Response.php line 45
  14. at Response->setContent(object(View)) in Response.php line 201
  15. at Response->__construct(object(View)) in Router.php line 1017
  16. at Router->prepareResponse(object(Request), object(View)) in Router.php line 642
  17. at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 53
  18. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
  19. at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 137
  20. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  21. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
  22. at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137
  23. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  24. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
  25. at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
  26. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  27. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
  28. at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
  29. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  30. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
  31. at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 137
  32. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  33. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
  34. at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 137
  35. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  36. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
  37. at Pipeline->then(object(Closure)) in Router.php line 644
  38. at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 618
  39. at Router->dispatchToRoute(object(Request)) in Router.php line 596
  40. at Router->dispatch(object(Request)) in Kernel.php line 268
  41. at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
  42. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
  43. at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
  44. at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
  45. at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
  46. at Pipeline->then(object(Closure)) in Kernel.php line 150
  47. at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117
  48. at Kernel->handle(object(Request)) in index.php line 53
jpuck commented 7 years ago

It seems compatibility breaks after Laravel 5.1. You should update the requirements in composer.json to reflect this, or update the library for >5.2

I was able to get past the error by changing this line:

$this->app['auth']->extend('shibboleth', function ($app) {

to use provider instead of extend

$this->app['auth']->provider('shibboleth', function ($app) {
jpuck commented 7 years ago