app/libraries/Keycloak/KeycloakServiceProvider.php (40 lines of code) (raw):

<?php namespace Keycloak; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Config; class KeycloakServiceProvider extends ServiceProvider { /** * Indicates if loading of the provider is deferred. * * @var bool */ protected $defer = false; /** * Bootstrap the application events. * * @return void */ public function boot() { $this->package('keycloak/keycloak'); } /** * Register the service provider. * * @return void */ public function register() { //registering service provider $this->app['keycloak'] = $this->app->share(function($app) { $identityServerConfig = Config::get('pga_config.wsis'); $airavataConfig = Config::get('pga_config.airavata'); return new Keycloak( $identityServerConfig['tenant-domain'], // TODO: we can derive this from tenant-domain and service-url $identityServerConfig['openid-connect-discovery-url'], $identityServerConfig['oauth-client-key'], $identityServerConfig['oauth-client-secret'], $identityServerConfig['oauth-callback-url'], isset($identityServerConfig['cafile-path']) ? $identityServerConfig['cafile-path'] : null, $identityServerConfig['verify-peer'], $identityServerConfig['service-url'], $identityServerConfig['admin-username'], $identityServerConfig['admin-password'], $airavataConfig['gateway-id'] ); }); //registering alis $this->app->booting(function() { $loader = \Illuminate\Foundation\AliasLoader::getInstance(); $loader->alias('Keycloak', 'Keycloak\Facades\Keycloak'); }); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return array('keycloak'); } }