Habari\Utils::verify_wsse PHP Méthode

verify_wsse() public static méthode

Verify WSSE values passed in.
public static verify_wsse ( array $data, boolean $anyverb = false ) : boolean
$data array payload from a given request, needs to include 'nonce', 'timestamp', and 'digest' as generated by Utils::WSSE()
$anyverb boolean If true, act on any request verb, not just POST.
Résultat boolean True if the WSSE values passed are valid
    public static function verify_wsse($data, $anyverb = false)
    {
        $pass = true;
        if ($anyverb || $_SERVER['REQUEST_METHOD'] == 'POST') {
            if ($data instanceof ActionHandler) {
                $extract = $data->handler_vars->filter_keys('nonce', 'timestamp', 'digest');
            } elseif ($data instanceof SuperGlobal) {
                $extract = $data->filter_keys('nonce', 'timestamp', 'digest');
            } elseif (is_array($data)) {
                $extract = array_intersect_key($data, array('nonce' => 1, 'timestamp' => 1, 'digest' => 1));
            } else {
                $extract = array('nonce' => 1, 'timestamp' => 1, 'digest' => 1);
            }
            foreach ($extract as $key => $value) {
                ${$key} = $value;
            }
            if (empty($nonce) || empty($timestamp) || empty($digest)) {
                $pass = false;
            }
            if ($pass == true) {
                $check = self::WSSE($nonce, $timestamp);
                if ($digest != $check['digest']) {
                    $pass = false;
                }
            }
        }
        return $pass;
    }