public function processFormData(WebRequest $request, Response $response)
    {
        /**
         * If there is no csrf-key or csrf-token we return immediately 
         * because this could be a hacker.
         */ 
        if (!$request->hasParam('csrf-key') || !$request->hasParam('csrf-token')) {
            return;
        }
        
        /**
         * Otherwise lookup the csrf-key and csrf-token in the session and
         * validate them
         */
        $key = $request->getParam('csrf-key');
        $token = $request->getParam('csrf-token');
        $sessionToken = $request->getSessionData($key);
        
        /**
         * Remove the old token
         */
        $request->deleteSessionData($key);
        
        /**
         * If the token from the form not is equal with the token in the session
         * we will return here
         */
        if ($sessionToken !== $token) {
            return;
        }
        
        /**
         * Process the form data if the csrf tokens are valid
         */
        foreach ($this->getChildrenByType('\\Zepi\\Web\\UserInterface\\Form\\Field\\FieldAbstract') as $field) {
            if ($request->hasParam($field->getHtmlName())) {
                $field->setValue($request->getParam($field->getHtmlName()), $request);
            }
        }
        
        /**
         * Execute the form event
         */
        if ($request->hasParam('form-update-request')) {
            $fieldId = $request->getParam('form-update-request');
            
            foreach ($this->getChildrenByType('\\Zepi\\Web\\UserInterface\\Form\\Field\\FieldAbstract') as $field) {
                if ($field->getHtmlId() === $fieldId) {
                    $field->executeFormUpdateRequest($request, $response, $this);
                }
            }
        }
    }