* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\FrameworkBundle\Session; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage; use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageFactoryInterface; use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface; /** * @author Jérémy Derussé * * @internal to be removed in Symfony 6 */ final class ServiceSessionFactory implements SessionStorageFactoryInterface { private $storage; public function __construct(SessionStorageInterface $storage) { $this->storage = $storage; } public function createStorage(?Request $request): SessionStorageInterface { if ($this->storage instanceof NativeSessionStorage && $request && $request->isSecure()) { $this->storage->setOptions(['cookie_secure' => true]); } return $this->storage; } }