我建立一个移动应用程序,通过webservices与我的symfony2应用程序说话
我找不到一个方法来禁用csrf保护特定的控制器/操作
我找不到一个方法来禁用csrf保护特定的控制器/操作
我想将注册数据发布到此操作,并使用sf2表单验证。我不在我的移动应用程序中调用表单
无法在操作中更改容器参数,因为它是冻结的参数而抛出异常…
我不想禁用整个我的应用程序的表单保护
任何线索?
谢谢 !
update:with symfony 2.1.x
/**
* {@inheritdoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'csrf_protection' => false,));
}
如果你想寻找一个比上述答案中建议的更简单和快速的解决方案,以下是如何:
<?PHP
// ...
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\OptionsResolver\OptionsResolver;
class MyType extends AbstractType
{
// ...
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'csrf_protection' => false,));
}
}
..或如果你使用Symfony 2.0。*:
<?PHP
// ...
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class MyType extends AbstractType
{
// ....
public function getDefaultOptions(array $options)
{
$options = parent::getDefaultOptions($options);
$options['csrf_protection'] = false;
return $options;
}
}
有关更多信息,请咨询Symfony documentation。
编辑:更新的答案最新Symfony版本,感谢 naitsirch