Beispiel #1
0
 /**
  * Calculate Nonce
  *
  * @return string The nonce value
  */
 protected function _calcNonce()
 {
     // Once subtle consequence of this timeout calculation is that it
     // actually divides all of time into _nonceTimeout-sized sections, such
     // that the value of timeout is the point in time of the next
     // approaching "boundary" of a section. This allows the server to
     // consistently generate the same timeout (and hence the same nonce
     // value) across requests, but only as long as one of those
     // "boundaries" is not crossed between requests. If that happens, the
     // nonce will change on its own, and effectively log the user out. This
     // would be surprising if the user just logged in.
     $timeout = ceil(time() / $this->_nonceTimeout) * $this->_nonceTimeout;
     $nonce = hash('md5', $timeout . ':' . $this->_request->getServer()->get('HTTP_USER_AGENT') . ':' . __CLASS__);
     return $nonce;
 }
Beispiel #2
0
 public function testRequestAllowsSettingOfParameterContainer()
 {
     $request = new Request();
     $p = new \Zend\Stdlib\Parameters();
     $request->setQuery($p);
     $request->setPost($p);
     $request->setFile($p);
     $request->setServer($p);
     $request->setEnv($p);
     $this->assertSame($p, $request->getQuery());
     $this->assertSame($p, $request->getPost());
     $this->assertSame($p, $request->getFile());
     $this->assertSame($p, $request->getServer());
     $this->assertSame($p, $request->getEnv());
 }
Beispiel #3
0
 /**
  * Return browse action from the request.
  *
  * @param Zend\Http\Request $request Request
  *
  * @return null|string Browse action or null if request is not a browse action
  */
 protected function getBrowseAction($request)
 {
     $referer = $request->getServer()->get('HTTP_REFERER');
     $match = null;
     $regex = '/^http[s]?:.*\\/Browse\\/(Database|Journal)[\\/.*]?/';
     if (preg_match($regex, $referer, $match)) {
         return $match[1];
     }
     return null;
 }
 /**
  * return accessLog instance
  *
  * @param string $loginName
  * @param Zend_Auth_Result $authResult
  * @param Zend_Controller_Request_Abstract $request
  * @param string $clientIdString
  * @return Tinebase_Model_AccessLog
  */
 public function getAccessLogEntry($loginName, Zend_Auth_Result $authResult, \Zend\Http\Request $request, $clientIdString)
 {
     if ($header = $request->getHeaders('USER-AGENT')) {
         $userAgent = substr($header->getFieldValue(), 0, 255);
     } else {
         $userAgent = 'unknown';
     }
     $accessLog = new Tinebase_Model_AccessLog(array('ip' => $request->getServer('REMOTE_ADDR'), 'li' => Tinebase_DateTime::now(), 'result' => $authResult->getCode(), 'clienttype' => $clientIdString, 'login_name' => $loginName ? $loginName : $authResult->getIdentity(), 'user_agent' => $userAgent), true);
     return $accessLog;
 }
Beispiel #5
0
 /**
  * GetRefererUrl
  *
  * @return mixed
  */
 public function getRefererURL()
 {
     return $this->request->getServer('HTTP_REFERER');
 }
Beispiel #6
0
 private function buildRequest(HttpRequest $httpRequest)
 {
     $headers = $httpRequest->getHeaders();
     // Marshal content type, so we can seed it into the $_SERVER array
     $contentType = $headers->has('Content-Type') ? $headers->get('Content-Type')->getFieldValue() : '';
     // Get $_SERVER superglobal
     $server = [];
     if ($httpRequest instanceof PhpEnvironmentRequest) {
         $server = $httpRequest->getServer()->toArray();
     } elseif (!empty($_SERVER)) {
         $server = $_SERVER;
     }
     $server['REQUEST_METHOD'] = $httpRequest->getMethod();
     // Seed headers with HTTP auth information
     $headers = $headers->toArray();
     if (isset($server['PHP_AUTH_USER'])) {
         $headers['PHP_AUTH_USER'] = $server['PHP_AUTH_USER'];
     }
     if (isset($server['PHP_AUTH_PW'])) {
         $headers['PHP_AUTH_PW'] = $server['PHP_AUTH_PW'];
     }
     $bodyParams = $this->getBodyParams($httpRequest);
     return new OAuthRequest($httpRequest->getQuery()->toArray(), $bodyParams, [], [], [], $server, $httpRequest->getContent(), $headers);
 }