// Protects POST, PUT, DELETE, PATCH
$method =
strtoupper($request->
getMethod());
$methodsToProtect =
['POST', 'PUT', 'DELETE', 'PATCH'
];
if (!
in_array($method,
$methodsToProtect, true
)) { return $this;
} $postedToken =
$this->
getPostedToken($request);
try { $token =
($postedToken !== null &&
$this->config->tokenRandomize
) ?
$this->
derandomize($postedToken) :
$postedToken;
} catch (InvalidArgumentException
$e) { $token = null;
} // Do the tokens match?
if (!
isset($token,
$this->hash
) || !
hash_equals($this->hash,
$token)) { throw SecurityException::
forDisallowedAction();
} $this->
removeTokenInRequest($request);