Exemplo n.º 1
0
 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'));
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 /**
  * @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());
 }
Exemplo n.º 5
0
 /**
  * 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;
 }
Exemplo n.º 6
0
 /**
  * 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;
 }
Exemplo n.º 8
0
 /**
  * @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());
 }
Exemplo n.º 9
0
 /**
  * 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);
 }
Exemplo n.º 10
0
 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());
 }
Exemplo n.º 12
0
 /**
  * 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());
 }
Exemplo n.º 13
0
 /**
  * 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);
 }
Exemplo n.º 14
0
 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());
 }