Skip to content

Commit 5c5d60c

Browse files
author
Joan He
committed
MAGETWO-23159: [GITHUB] Area Sessions: Magento 2 Should not Allow "area-less" Sessions During an Area Aware Request #526
1 parent 385f475 commit 5c5d60c

File tree

14 files changed

+267
-219
lines changed

14 files changed

+267
-219
lines changed

app/code/Magento/Backend/Model/Auth/Session.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage
6161
* @param \Magento\Framework\Session\StorageInterface $storage
6262
* @param CookieManagerInterface $cookieManager
6363
* @param CookieMetadataFactory $cookieMetadataFactory
64+
* @param \Magento\Framework\App\State $appState
6465
* @param \Magento\Framework\Acl\Builder $aclBuilder
6566
* @param \Magento\Backend\Model\UrlInterface $backendUrl
6667
* @param \Magento\Backend\App\ConfigInterface $config
68+
* @throws \Magento\Framework\Exception\SessionException
6769
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
6870
*/
6971
public function __construct(
@@ -75,6 +77,7 @@ public function __construct(
7577
\Magento\Framework\Session\StorageInterface $storage,
7678
CookieManagerInterface $cookieManager,
7779
CookieMetadataFactory $cookieMetadataFactory,
80+
\Magento\Framework\App\State $appState,
7881
\Magento\Framework\Acl\Builder $aclBuilder,
7982
\Magento\Backend\Model\UrlInterface $backendUrl,
8083
\Magento\Backend\App\ConfigInterface $config
@@ -90,9 +93,9 @@ public function __construct(
9093
$validator,
9194
$storage,
9295
$cookieManager,
93-
$cookieMetadataFactory
96+
$cookieMetadataFactory,
97+
$appState
9498
);
95-
$this->start();
9699
}
97100

98101
/**

app/code/Magento/Backend/Model/Session.php

-33
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,6 @@
99

1010
class Session extends \Magento\Framework\Session\SessionManager
1111
{
12-
/**
13-
* @param \Magento\Framework\App\Request\Http $request
14-
* @param \Magento\Framework\Session\SidResolverInterface $sidResolver
15-
* @param \Magento\Framework\Session\Config\ConfigInterface $sessionConfig
16-
* @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler
17-
* @param \Magento\Framework\Session\ValidatorInterface $validator
18-
* @param \Magento\Framework\Session\StorageInterface $storage
19-
* @param \Magento\Framework\Stdlib\CookieManagerInterface $cookieManager
20-
* @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory
21-
*/
22-
public function __construct(
23-
\Magento\Framework\App\Request\Http $request,
24-
\Magento\Framework\Session\SidResolverInterface $sidResolver,
25-
\Magento\Framework\Session\Config\ConfigInterface $sessionConfig,
26-
\Magento\Framework\Session\SaveHandlerInterface $saveHandler,
27-
\Magento\Framework\Session\ValidatorInterface $validator,
28-
\Magento\Framework\Session\StorageInterface $storage,
29-
\Magento\Framework\Stdlib\CookieManagerInterface $cookieManager,
30-
\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory
31-
) {
32-
parent::__construct(
33-
$request,
34-
$sidResolver,
35-
$sessionConfig,
36-
$saveHandler,
37-
$validator,
38-
$storage,
39-
$cookieManager,
40-
$cookieMetadataFactory
41-
);
42-
$this->start();
43-
}
44-
4512
/**
4613
* Skip path validation in backend area
4714
*

app/code/Magento/Backend/Model/Session/Quote.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,13 @@ class Quote extends \Magento\Framework\Session\SessionManager
8383
* @param \Magento\Framework\Session\StorageInterface $storage
8484
* @param \Magento\Framework\Stdlib\CookieManagerInterface $cookieManager
8585
* @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory
86+
* @param \Magento\Framework\App\State $appState
8687
* @param CustomerRepositoryInterface $customerRepository
8788
* @param \Magento\Quote\Model\QuoteRepository $quoteRepository
8889
* @param \Magento\Sales\Model\OrderFactory $orderFactory
8990
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
9091
* @param GroupManagementInterface $groupManagement
92+
* @throws \Magento\Framework\Exception\SessionException
9193
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
9294
*/
9395
public function __construct(
@@ -99,6 +101,7 @@ public function __construct(
99101
\Magento\Framework\Session\StorageInterface $storage,
100102
\Magento\Framework\Stdlib\CookieManagerInterface $cookieManager,
101103
\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory,
104+
\Magento\Framework\App\State $appState,
102105
CustomerRepositoryInterface $customerRepository,
103106
\Magento\Quote\Model\QuoteRepository $quoteRepository,
104107
\Magento\Sales\Model\OrderFactory $orderFactory,
@@ -118,9 +121,9 @@ public function __construct(
118121
$validator,
119122
$storage,
120123
$cookieManager,
121-
$cookieMetadataFactory
124+
$cookieMetadataFactory,
125+
$appState
122126
);
123-
$this->start();
124127
if ($this->_storeManager->hasSingleStore()) {
125128
$this->setStoreId($this->_storeManager->getStore(true)->getId());
126129
}

app/code/Magento/Backend/Test/Unit/Model/Session/QuoteTest.php

+9-1
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ protected function setUp()
182182
'',
183183
false
184184
);
185+
$appStateMock = $this->getMock(
186+
'Magento\Framework\App\State',
187+
[],
188+
[],
189+
'',
190+
false
191+
);
185192
$this->storeManagerMock = $this->getMockForAbstractClass(
186193
'Magento\Store\Model\StoreManagerInterface',
187194
[],
@@ -201,11 +208,12 @@ protected function setUp()
201208
'storage' => $this->storageMock,
202209
'cookieManager' => $this->cookieManagerMock,
203210
'cookieMetadataFactory' => $this->cookieMetadataFactoryMock,
211+
'appState' => $appStateMock,
204212
'customerRepository' => $this->customerRepositoryMock,
205213
'quoteRepository' => $this->quoteRepositoryMock,
206214
'orderFactory' => $this->orderFactoryMock,
207215
'storeManager' => $this->storeManagerMock,
208-
'groupManagement' => $this->groupManagementMock
216+
'groupManagement' => $this->groupManagementMock,
209217
],
210218
'',
211219
true

app/code/Magento/Catalog/Model/Session.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
/**
99
* Catalog session model
1010
*/
11-
class Session extends \Magento\Framework\Session\Generic
11+
class Session extends \Magento\Framework\Session\SessionManager
1212
{
1313
}

app/code/Magento/Checkout/Model/Session.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,15 @@ class Session extends \Magento\Framework\Session\SessionManager
9090
* @param \Magento\Framework\Session\StorageInterface $storage
9191
* @param \Magento\Framework\Stdlib\CookieManagerInterface $cookieManager
9292
* @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory
93+
* @param \Magento\Framework\App\State $appState
9394
* @param \Magento\Sales\Model\OrderFactory $orderFactory
9495
* @param \Magento\Customer\Model\Session $customerSession
9596
* @param \Magento\Quote\Model\QuoteRepository $quoteRepository
9697
* @param \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress
9798
* @param \Magento\Framework\Event\ManagerInterface $eventManager
9899
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
99100
* @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository
101+
* @throws \Magento\Framework\Exception\SessionException
100102
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
101103
*/
102104
public function __construct(
@@ -108,6 +110,7 @@ public function __construct(
108110
\Magento\Framework\Session\StorageInterface $storage,
109111
\Magento\Framework\Stdlib\CookieManagerInterface $cookieManager,
110112
\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory,
113+
\Magento\Framework\App\State $appState,
111114
\Magento\Sales\Model\OrderFactory $orderFactory,
112115
\Magento\Customer\Model\Session $customerSession,
113116
\Magento\Quote\Model\QuoteRepository $quoteRepository,
@@ -131,9 +134,9 @@ public function __construct(
131134
$validator,
132135
$storage,
133136
$cookieManager,
134-
$cookieMetadataFactory
137+
$cookieMetadataFactory,
138+
$appState
135139
);
136-
$this->start();
137140
}
138141

139142
/**

app/code/Magento/Customer/Model/Session.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class Session extends \Magento\Framework\Session\SessionManager
102102
* @param \Magento\Framework\Session\StorageInterface $storage
103103
* @param \Magento\Framework\Stdlib\CookieManagerInterface $cookieManager
104104
* @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory
105+
* @param \Magento\Framework\App\State $appState
105106
* @param Share $configShare
106107
* @param \Magento\Framework\Url\Helper\Data $coreUrl
107108
* @param \Magento\Customer\Model\Url $customerUrl
@@ -113,6 +114,7 @@ class Session extends \Magento\Framework\Session\SessionManager
113114
* @param \Magento\Framework\App\Http\Context $httpContext
114115
* @param CustomerRepositoryInterface $customerRepository
115116
* @param GroupManagementInterface $groupManagement
117+
* @throws \Magento\Framework\Exception\SessionException
116118
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
117119
*/
118120
public function __construct(
@@ -124,6 +126,7 @@ public function __construct(
124126
\Magento\Framework\Session\StorageInterface $storage,
125127
\Magento\Framework\Stdlib\CookieManagerInterface $cookieManager,
126128
\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory,
129+
\Magento\Framework\App\State $appState,
127130
Config\Share $configShare,
128131
\Magento\Framework\Url\Helper\Data $coreUrl,
129132
\Magento\Customer\Model\Url $customerUrl,
@@ -154,9 +157,9 @@ public function __construct(
154157
$validator,
155158
$storage,
156159
$cookieManager,
157-
$cookieMetadataFactory
160+
$cookieMetadataFactory,
161+
$appState
158162
);
159-
$this->start();
160163
$this->groupManagement = $groupManagement;
161164
$this->_eventManager->dispatch('customer_session_init', ['customer_session' => $this]);
162165
}

app/code/Magento/Newsletter/Model/Session.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/**
99
* Newsletter session model
1010
*/
11-
class Session extends \Magento\Framework\Session\Generic
11+
class Session extends \Magento\Framework\Session\SessionManager
1212
{
1313
/**
1414
* Set error message

0 commit comments

Comments
 (0)