【问题标题】:Symfony 2 form in eZ Publish 5, CSRF intuitioneZ Publish 5 中的 Symfony 2 形式,CSRF 直觉
【发布时间】:2013-04-25 13:31:16
【问题描述】:

我正在开发一个 eZ publish 5 项目。这个 CMS 基于 symfony 2。 我已经构建了一个没有类的表单,如 tge 页面中所述:http://symfony.com/doc/current/book/forms.html#using-a-form-without-a-class

在 eZ 发布 5 文档 (https://confluence.ez.no/display/EZP/Legacy+configuration+injection) 上,我读到我需要将 CSRF 意图参数设置为“旧版”。我不知道该怎么做。我尝试在我的 formBuilder 上使用 add 方法:

$this->createFormBuilder()->add('_token', 'csrf', array('intention'=>'legacy');

但我收到一个错误“无法加载类型 csrf”。

有人可以帮我吗?

谢谢。

【问题讨论】:

  • 您好,您使用的是哪个 exact 版本? 开发大师 ?最近对 CSRF 进行了相当多的更改。

标签: forms symfony ezpublish


【解决方案1】:

好的,我已经尝试过了。

我的第一个答案实际上是一个问题:如果您不打算执行任何遗留内核代码作为表单的后续,我相信您不需要关心意图。

Symfony 和旧版内核之间的意图只需要在旧版内核启动时匹配(在这种情况下,它将检查是否有令牌,以及是否有效)。

如果您需要使用 Legacy Kernel,您可以通过传递自定义表单选项将意图设置为 legacy:

$formOptions = array( 'intention' => 'legacy' );
$form = $this->createFormBuilder( null, $formOptions )
    ->add( 'text', 'text' )
    ->getForm();

http://symfony.com/doc/current/book/forms.html#csrf-protection 中解释了设置默认意图,但我不建议这样做,除非您打算只依赖旧版内核。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2018-02-03
    相关资源
    最近更新 更多