blob: 84c8eb7f4af667a709d700d1b42c5253ad409d40 [file] [log] [blame]
<?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');
}
}