referer不在生产模式Symfony 2.3中工作

时间:2013-09-10 09:57:14

标签: symfony

我在security.yml中添加了此选项,位于防火墙设置下:

    use_referer: true

现在,我创建了一个用于确认电子邮件的链接。当我处于开发模式时,如果我点击链接并且没有登录到应用程序,我进入登录页面,然后在登录后我转到电子邮件确认链接。但是在生产模式下,这在登录后无效。它也将我重定向到默认目标路径。

这是security.yml:

    firewalls:
      dev:
       pattern: ^/(_(profiler|wdt)|css|images|js)/
       security: false

     main:
      pattern: ^/
      my-login:
       login_path: /
       check_path: /login_check
       default_target_path: /default_root
       provider:   my_provide
       use_referer: true

编辑:更多信息

我创建了异常监听器,它检查响应并将用户重定向到登录页面(如果他/她未经过身份验证)。以前它只在生产模式下工作,我使它在开发模式下工作,现在referer也没有在开发模式下工作。

通过为此特定路由传递异常侦听器,我有什么方法可以。?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案.. :)

我刚从检查异常监听器中跳过了该特定路径。

    $path = $event->getRequest()->getPathInfo();
    if($this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') == false) {
      if($path == "my/path") {
        // simply redirect to login page without clearing session and cookies
      } else {
        // clear session and redirect to login page so that referer does not contain any data
      }
    }