/**
  * Signs the form. This method may be overridden to import fields to be signed, just call Form::setHiddenValue()
  * @return Form
  */
 function sign(WebRequest $request)
 {
     Assert::isFalse($this->isSigned(), 'form already signed');
     $this->privateValues['referrer'] = (string) $request->getHttpUrl();
     $this->addControl(FormControl::hidden($this->getSignatureFieldName(), $this->exportSignature()));
     $this->signed = true;
     return $this;
 }