public function testFromResponseInCookie() { $response = new Response(); $headers = new Headers(); $header = new SetCookie("foo", "bar"); $header->setDomain("www.zend.com"); $header->setPath("/"); $headers->addHeader($header); $response->setHeaders($headers); $response = Cookies::fromResponse($response, "http://www.zend.com"); $this->assertSame($header, $response->getCookie('http://www.zend.com', 'foo')); }
public function testSetCookieCanAppendOtherHeadersInWhenCreatingString() { $setCookieHeader = new SetCookie(); $setCookieHeader->setName('myname'); $setCookieHeader->setValue('myvalue'); $setCookieHeader->setExpires('Wed, 13-Jan-2021 22:23:01 GMT'); $setCookieHeader->setDomain('docs.foo.com'); $setCookieHeader->setPath('/accounts'); $setCookieHeader->setSecure(true); $setCookieHeader->setHttponly(true); $appendCookie = new SetCookie('othername', 'othervalue'); $headerLine = $setCookieHeader->toStringMultipleHeaders(array($appendCookie)); $target = 'Set-Cookie: myname=myvalue; Expires=Wed, 13-Jan-2021 22:23:01 GMT;' . ' Domain=docs.foo.com; Path=/accounts;' . ' Secure; HttpOnly, othername=othervalue'; $this->assertEquals($target, $headerLine); }
/** * Return a subset of a domain-matching cookies that also match a specified path * * @param array $domains * @param string $path * @return array */ protected function _matchPath($domains, $path) { $ret = array(); foreach ($domains as $dom => $pathsArray) { foreach (array_keys($pathsArray) as $cpath) { if (SetCookie::matchCookiePath($cpath, $path)) { if (!isset($ret[$dom])) { $ret[$dom] = array(); } $ret[$dom][$cpath] = $pathsArray[$cpath]; } } } return $ret; }
/** * @dataProvider validCookieWithInfoProvider */ public function testToString($cStr, $info, $expected) { $cookie = SetCookie::fromString($cStr); if (! $cookie instanceof SetCookie) { $this->fail("Failed creating a cookie object from '$cStr'"); } $this->assertEquals($cookie->getFieldName() . ': ' . $expected, $cookie->toString()); }
/** * Get the cookie Id (name+domain+path) * * @param Header\SetCookie|Header\Cookie $cookie * @return string|bool */ protected function getCookieId($cookie) { if ($cookie instanceof Header\SetCookie || $cookie instanceof Header\Cookie) { return $cookie->getName() . $cookie->getDomain() . $cookie->getPath(); } return false; }
/** * Set user's language * * @param string $language * @return void */ protected function setUserLanguage($language) { if (!$this->userIdentity['language'] || $this->userIdentity['language'] != $language) { // save language if ($this->userIdentity['role'] != AclBaseModel::DEFAULT_ROLE_GUEST) { $this->serviceLocator->get('Application\\Model\\ModelManager')->getInstance('User\\Model\\UserBase')->setUserLanguage($this->userIdentity['user_id'], $language); } // set language cookie $header = new SetCookie(); $header->setName(self::LOCALIZATION_COOKIE)->setValue($language)->setPath('/')->setExpires(time() + (int) SettingService::getSetting('application_localization_cookie_time')); $this->serviceLocator->get('Response')->getHeaders()->addHeader($header); $this->userIdentity['language'] = $language; // change globally user's identity UserIdentityService::setCurrentUserIdentity($this->userIdentity); UserIdentityService::getAuthService()->getStorage()->write($this->userIdentity); } }
public function destroy($sessionId) { $header = new HeaderSetCookie(); $header->setName(ini_get('session.name') . '_' . $sessionId); $header->setValue(''); $header->setExpires(time() - 1000000); $header->setPath('/'); $header->setHttponly(true); $this->getResponse()->getHeaders()->addHeader($header); return true; }
/** * @group ZF2-169 */ public function testDoesNotAcceptCookieNameFromArbitraryLocationInHeaderValue() { $cookie = 'Set-Cookie: Version=1; Max-Age=1799; Expires=Mon, 20-Feb-2012 02:49:57 GMT; Path=/; leo_auth_token="example"'; $setCookieHeader = SetCookie::fromString($cookie); $this->assertNotEquals('leo_auth_token', $setCookieHeader->getName()); }
/** * Save layout * * @param integer $layoutId * @return void */ public static function saveLayout($layoutId) { $header = new SetCookie(); $header->setName(LayoutModule::LAYOUT_COOKIE)->setValue($layoutId)->setPath('/')->setExpires(time() + (int) SettingService::getSetting('layout_select_cookie_time')); ServiceLocatorService::getServiceLocator()->get('Response')->getHeaders()->addHeader($header); }
public function setCookie($key = "", $value = "", $time = 86400) { $header = new \Zend\Http\Header\SetCookie(); $header->setName($key); $header->setValue($value); $header->setDomain($_SERVER['HTTP_HOST']); $header->setPath('/'); $header->setExpires(time() + $time); $this->getResponse()->getHeaders()->addHeader($header); }
public function testSessionTheftWithRememberMe() { $authenticationService = $this->getApplicationServiceLocator()->get('Zend\\Authentication\\AuthenticationService'); //do inital login $authenticationService->login('toby', 'password1', true); //get the remember me object $rememberMeObject = $this->documentManager->getRepository('Zoop\\GatewayModule\\DataModel\\RememberMe')->findOneBy(['username' => 'toby']); //clear the authentication storage $authenticationService->getOptions()->getPerSessionStorage()->clear(); //create the remember me request cookie $series = $rememberMeObject->getSeries(); $token = 'wrong token'; $requestCookie = new SetCookie(); $requestCookie->setName('rememberMe'); $requestCookie->setValue("{$series}\n{$token}\ntoby"); $requestCookie->setExpires(time() + 3600); $accept = new Accept(); $accept->addMediaType('application/json'); $this->getRequest()->setMethod(Request::METHOD_GET)->getHeaders()->addHeaders([$accept, $requestCookie]); $this->dispatch('/rest/authenticatedUser'); $response = $this->getResponse(); $result = json_decode($response->getContent(), true); $this->assertResponseStatusCode(204); $this->assertFalse(isset($result)); $responseCookie = $response->getHeaders()->get('SetCookie')[0]; $this->assertEquals('rememberMe', $responseCookie->getName()); $this->assertEquals('', $responseCookie->getValue()); }
/** * ZF2-169 * * @see http://framework.zend.com/issues/browse/ZF2-169 */ public function testZF2_169() { $cookie = 'Set-Cookie: leo_auth_token="example"; Version=1; Max-Age=1799; Expires=Mon, 20-Feb-2012 02:49:57 GMT; Path=/'; $setCookieHeader = SetCookie::fromString($cookie); $this->assertEquals($cookie, $setCookieHeader->toString()); }
/** * Save a shopping cart cookie * * @param string $value * @return void */ private function _saveShoppingCartCookie($value) { $header = new SetCookie(); $header->setName(self::SHOPPING_CART_COOKIE)->setValue($value)->setPath('/')->setHttpOnly(true)->setExpires(time() + (int) SettingService::getSetting('payment_shopping_cart_session_time')); $this->serviceLocator->get('Response')->getHeaders()->addHeader($header); }
public function testSetJsonValue() { $cookieName = "fooCookie"; $jsonData = json_encode(array('foo' => 'bar')); $cookie = new SetCookie($cookieName, $jsonData); $regExp = sprintf('#^%s=%s#', $cookieName, urlencode($jsonData)); $this->assertRegExp($regExp, $cookie->getFieldValue()); $cookieName = "fooCookie"; $jsonData = json_encode(array('foo' => 'bar')); $cookie = new SetCookie($cookieName, $jsonData); $cookie->setDomain('example.org'); $regExp = sprintf('#^%s=%s; Domain=#', $cookieName, urlencode($jsonData)); $this->assertRegExp($regExp, $cookie->getFieldValue()); }