我是FriendsOfSymfony UserBundle的新手,在我尝试用户注销之前,一切进展顺利。登录工作完美,我使用的是我在很多网站上看到的基本配置。我只有2个用户需要登录。用户单击注销URL时会出现此问题。在这种情况下/注销。我在浏览器中收到通用服务器错误,error_log显示“脚本标题的过早结束:app_dev.php”。如果我在错误页面上点击刷新它会回到我的主页并且我已成功注销。
这是security.yml中的防火墙部分:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
check_path: fos_user_security_check
csrf_provider: form.csrf_provider
logout: true
anonymous: true
这是security.yml的access_control部分:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel:https }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/logout, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
这是config.yml
中的fos_user部分fos_user:
db_driver: orm
firewall_name: main
user_class: Wielding\BassBundle\Entity\User
我正在用我的树枝形式生成注销网址:
<a href="{{ path('fos_user_security_logout') }}">logout</a>
如果我没有登录该站点并且我手动转到注销URL,我会被重定向回默认索引页面而没有任何错误。如果我已登录并手动输入注销URL,则会出现服务器错误。我已经尝试了很多配置更改的变化,我甚至无法在这里列出它们。他们都失败了。
我甚至尝试通过使控制器中的会话无效来编写我自己的注销,并生成相同的错误。
到目前为止,我唯一的线索是dev.log中的一个条目:
[2013-07-27 14:51:26] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: SessionHandler::write(): Parent session handler is not open in /home/dev2/app/cache/dev/classes.php line 407" at /home/dev2/app/cache/dev/classes.php line 407 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ContextErrorException: Warning: SessionHandler::write(): Parent session handler is not open in /home/dev2/app/cache/dev/classes.php line 407 at /home/dev2/app/cache/dev/classes.php:407)"} []
对此进行搜索最初表明这不是值得担心的事情,但我不在其他想法中。这是我开展安全工作的最后一项任务,也让我感到非常震惊。
我很乐意提供帮助解决这个非常恼人的问题所需的任何其他信息。提前感谢您的任何帮助。
答案 0 :(得分:3)