public function authenticate()
    {
        $result = call_user_func_array($this->_callback, $this->_params);
        if ( !($result instanceof Result)) {
            if ($result === true) {
                $result = new Result(Result::SUCCESS, $this->_identity);
            } else {
                $result = new Result(Result::FAILURE_CREDENTIAL_INVALID, $this->_identity);
            }
        }
        return $result;
    }