我建立一个移动应用程序,通过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