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');
    }
}