9
9
10
10
use Magento \Framework \App \Http \Context ;
11
11
use Magento \Framework \App \ObjectManager ;
12
+ use Magento \Framework \Stdlib \Cookie \CookieMetadata ;
12
13
use Magento \Framework \Stdlib \Cookie \CookieMetadataFactory ;
13
14
use Magento \Framework \Stdlib \CookieManagerInterface ;
14
15
use Magento \Framework \Stdlib \DateTime ;
15
16
use Magento \Framework \App \Request \Http as HttpRequest ;
17
+ use Magento \Framework \Session \Config \ConfigInterface ;
16
18
17
19
class Http extends \Magento \Framework \HTTP \PhpEnvironment \Response
18
20
{
@@ -50,25 +52,33 @@ class Http extends \Magento\Framework\HTTP\PhpEnvironment\Response
50
52
*/
51
53
protected $ dateTime ;
52
54
55
+ /**
56
+ * @var \Magento\Framework\Session\Config\ConfigInterface
57
+ */
58
+ private $ sessionConfig ;
59
+
53
60
/**
54
61
* @param HttpRequest $request
55
62
* @param CookieManagerInterface $cookieManager
56
63
* @param CookieMetadataFactory $cookieMetadataFactory
57
64
* @param Context $context
58
65
* @param DateTime $dateTime
66
+ * @param ConfigInterface|null $sessionConfig
59
67
*/
60
68
public function __construct (
61
69
HttpRequest $ request ,
62
70
CookieManagerInterface $ cookieManager ,
63
71
CookieMetadataFactory $ cookieMetadataFactory ,
64
72
Context $ context ,
65
- DateTime $ dateTime
73
+ DateTime $ dateTime ,
74
+ ConfigInterface $ sessionConfig = null
66
75
) {
67
76
$ this ->request = $ request ;
68
77
$ this ->cookieManager = $ cookieManager ;
69
78
$ this ->cookieMetadataFactory = $ cookieMetadataFactory ;
70
79
$ this ->context = $ context ;
71
80
$ this ->dateTime = $ dateTime ;
81
+ $ this ->sessionConfig = $ sessionConfig ?: ObjectManager::getInstance ()->get (ConfigInterface::class);
72
82
}
73
83
74
84
/**
@@ -91,7 +101,10 @@ public function sendVary()
91
101
{
92
102
$ varyString = $ this ->context ->getVaryString ();
93
103
if ($ varyString ) {
94
- $ sensitiveCookMetadata = $ this ->cookieMetadataFactory ->createSensitiveCookieMetadata ()->setPath ('/ ' );
104
+ $ cookieLifeTime = $ this ->sessionConfig ->getCookieLifetime ();
105
+ $ sensitiveCookMetadata = $ this ->cookieMetadataFactory ->createSensitiveCookieMetadata (
106
+ [CookieMetadata::KEY_DURATION => $ cookieLifeTime ]
107
+ )->setPath ('/ ' );
95
108
$ this ->cookieManager ->setSensitiveCookie (self ::COOKIE_VARY_STRING , $ varyString , $ sensitiveCookMetadata );
96
109
} elseif ($ this ->request ->get (self ::COOKIE_VARY_STRING )) {
97
110
$ cookieMetadata = $ this ->cookieMetadataFactory ->createSensitiveCookieMetadata ()->setPath ('/ ' );
0 commit comments