Skip to content
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.

Commit

Permalink
Merging develop to master in preparation for 1.5.0 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
weierophinney committed Feb 11, 2019
2 parents 7253cd5 + 4eb6a25 commit 75bc1fa
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 7 deletions.
8 changes: 6 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@

All notable changes to this project will be documented in this file, in reverse chronological order by release.

## 1.4.1 - TBD
## 1.5.0 - 2019-02-11

### Added

- Nothing.

### Changed

- Nothing.
- [#34](https://github.com/zendframework/zend-expressive-session-ext/pull/34) modifies the logic used when starting a session to ensure the REQUIRED
defaults are always set. These include:
- session.use_cookies = false
- session.use_only_cookes = true
- session.cache_limiter = ""

### Deprecated

Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@
},
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev",
"dev-develop": "1.5.x-dev"
"dev-master": "1.5.x-dev",
"dev-develop": "1.6.x-dev"
},
"zf": {
"config-provider": "Zend\\Expressive\\Session\\Ext\\ConfigProvider"
Expand Down
2 changes: 1 addition & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/PhpSessionPersistence.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,11 +151,11 @@ public function persistSession(SessionInterface $session, ResponseInterface $res
private function startSession(string $id, array $options = []) : void
{
session_id($id);
session_start(array_merge([
session_start([
'use_cookies' => false,
'use_only_cookies' => true,
'cache_limiter' => '',
], $options));
] + $options);
}

/**
Expand Down
30 changes: 30 additions & 0 deletions test/PhpSessionPersistenceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use Dflydev\FigCookies\SetCookie;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ServerRequestInterface;
use ReflectionMethod;
use Zend\Diactoros\Response;
use Zend\Diactoros\ServerRequest;
use Zend\Expressive\Session\Ext\PhpSessionPersistence;
Expand Down Expand Up @@ -555,4 +556,33 @@ public function testSavedSessionLifetimeOverridesDefaultLifetime()

$this->restoreOriginalSessionIniSettings($ini);
}

public function testStartSessionDoesNotOverrideRequiredSettings()
{
$persistence = new PhpSessionPersistence();

$method = new ReflectionMethod($persistence, 'startSession');
$method->setAccessible(true);

// try to override required settings
$method->invokeArgs($persistence, [
'my-session-id',
[
'use_cookies' => true, // FALSE is required
'use_only_cookies' => false, // TRUE is required
'cache_limiter' => 'nocache', // '' is required
]
]);

$filter = FILTER_VALIDATE_BOOLEAN;
$flags = FILTER_NULL_ON_FAILURE;

$session_use_cookies = filter_var(ini_get('session.use_cookies'), $filter, $flags);
$session_use_only_cookies = filter_var(ini_get('session.use_only_cookies'), $filter, $flags);
$session_cache_limiter = ini_get('session.cache_limiter');

$this->assertFalse($session_use_cookies);
$this->assertTrue($session_use_only_cookies);
$this->assertSame('', $session_cache_limiter);
}
}

0 comments on commit 75bc1fa

Please sign in to comment.