public function isAuthenticated()
    {
        /*
         * If this form was not submitted, consider it authenticated. Processing
         * should be safe on forms that were not submitted.
         */
        if (!$this->isSubmitted()) {
            return true;
        }

        $raw_data = $this->getFormData();

        $token = null;
        if (isset($raw_data[self::AUTHENTICATION_TOKEN_FIELD])) {
            $token = SwatString::signedUnserialize(
                $raw_data[self::AUTHENTICATION_TOKEN_FIELD],
                $this->salt
            );
        }

        /*
         * If this form's authentication token is set, the token in submitted
         * data must match.
         */
        return self::$authentication_token === null ||
            self::$authentication_token === $token;
    }