public function register(Application $app)
 {
     parent::register($app);
     if (!isset($app['session.cookie.options'])) {
         $app['session.cookie.options'] = [];
     }
     $this->app = $app;
     $app['session.storage.handler'] = $app->share(function ($app) {
         $options = CookieSessionServiceProvider::mergeDefaultOptions(isset($app['session.cookie.options']) ? $app['session.cookie.options'] : []);
         return new CookieSessionHandler($options['name'], $options['lifetime'], $options['path'], $options['domain'], $options['secure'], $options['httponly']);
     });
     $app['session.storage.native'] = $app->share(function ($app) {
         return new PhpBridgeSessionStorage($app['session.storage.handler']);
     });
     $app['session'] = $app->share(function ($app) {
         if (!isset($app['session.storage'])) {
             if ($app['session.test']) {
                 $app['session.storage'] = $app['session.storage.test'];
             } else {
                 $app['session.storage'] = $app['session.storage.native'];
             }
         }
         $options = CookieSessionServiceProvider::mergeDefaultOptions(isset($app['session.cookie.options']) ? $app['session.cookie.options'] : []);
         $session = new CookieSession($app['session.storage']);
         $session->setName($options['name']);
         return $session;
     });
 }
Beispiel #2
0
 /**
  * Creates the application.
  *
  * @return Synapse\Application
  */
 public function createApplicationWithServices(array $services)
 {
     defined('WEBDIR') or define('WEBDIR', realpath(__DIR__));
     defined('APPDIR') or define('APPDIR', realpath(WEBDIR . '/..'));
     defined('DATADIR') or define('DATADIR', APPDIR . '/data');
     defined('TMPDIR') or define('TMPDIR', '/tmp');
     date_default_timezone_set('UTC');
     $applicationInitializer = new Synapse\ApplicationInitializer();
     $app = $applicationInitializer->initialize();
     $app->register(new \Silex\Provider\SecurityServiceProvider());
     $app->register(new \Synapse\Controller\ControllerServiceProvider());
     $app->register(new \Silex\Provider\UrlGeneratorServiceProvider());
     $app['security.firewalls'] = $app->share(function () {
         return ['base.api' => ['pattern' => '^/', 'oauth' => true]];
     });
     $app['security.access_rules'] = $app->share(function () {
         return [];
     });
     // synapse's default session provider doesn't allow for testing so override
     $sessionServiceProvider = new SessionServiceProvider();
     $sessionServiceProvider->register($app);
     $app['debug'] = true;
     $app['session.test'] = true;
     $app['exception_handler']->disable();
     foreach ($services as $service) {
         $app->register($service);
     }
     $this->setupOAuth2Provider($app);
     return $app;
 }
 public function register(Application $app)
 {
     parent::register($app);
     $app['session.storage'] = $app->share(function ($app) {
         return new JwtCookieSessionStorage($app['session.storage.cookie.name'], $app['session.storage.cookie.secret']);
     });
     $app['session.bag.attribute'] = function ($app) {
         return new AutoSavingAttributeBag($app['session.storage']);
     };
     $app['session'] = $app->share(function ($app) {
         return new Session($app['session.storage'], $app['session.bag.attribute']);
     });
 }
 public function register(Application $app)
 {
     parent::register($app);
     /** @noinspection PhpParamsInspection */
     $app['session.storage.handler'] = $app->share(function ($app) {
         $config = $app['session.dynamodb.options'];
         if (!array_key_exists('dynamodb_client', $config)) {
             $config['dynamodb_client'] = $this->getDynamoDbClient($app['aws']);
         }
         return SessionHandler::factory($config);
     });
     $app['session.dynamodb.options'] = array();
 }