Ejemplo n.º 1
0
 /**
  * Returns the original string if the signature is valid or FALSE if not.
  *
  * @access  public
  * @param   string          $string  The string you want to validate
  * @return  string|boolean
  */
 public function validate($string)
 {
     $validated = substr($string, static::MAC_LENGTH);
     if (Comparer::compare($this->getSignature($validated), substr($string, 0, static::MAC_LENGTH))) {
         return $validated;
     }
     return false;
 }
Ejemplo n.º 2
0
 /**
  *
  */
 public function testCompare()
 {
     $this->assertTrue(Comparer::compare('foo', 'foo'));
     $this->assertTrue(Comparer::compare('', ''));
     $this->assertTrue(Comparer::compare(123, 123));
     $this->assertTrue(Comparer::compare(123, '123'));
     $this->assertTrue(Comparer::compare(null, null));
     $this->assertTrue(Comparer::compare(null, ''));
     $this->assertFalse(Comparer::compare('foo', 'bar'));
     $this->assertFalse(Comparer::compare('foo', ''));
     $this->assertFalse(Comparer::compare('', 'foo'));
     $this->assertFalse(Comparer::compare('foo', 'fooo'));
     $this->assertFalse(Comparer::compare('fooo', 'foo'));
 }
Ejemplo n.º 3
0
 /**
  * Validates security token.
  *
  * @access  public
  * @param   string   $token  Security token
  * @return  boolean
  */
 public function validateOneTimeToken($token)
 {
     if (!$this->started) {
         throw new LogicException(vsprintf("%s(): The session has not been started yet.", [__METHOD__]));
     }
     if (!empty($this->sessionData['mako.tokens'])) {
         foreach ($this->sessionData['mako.tokens'] as $key => $value) {
             if (Comparer::compare($value, $token)) {
                 unset($this->sessionData['mako.tokens'][$key]);
                 return true;
             }
         }
     }
     return false;
 }