Symfony 2.1上新会话管理的问题

时间:2012-09-28 08:58:37

标签: symfony session-state symfony-2.1

我使用Symfony 2.0和simplesamlphp完全没有问题。

当我迁移到Symfony 2.1时,使用simplesamlphp stoped工作进行外部身份验证。

经过一些研究后,我发现Symfony 2.1 HTTP Foundation现在已经在http://symfony.com/doc/master/components/http_foundation/sessions.html中记录了会话管理。

问题发生是因为simplesamlphp服务提供者启动一个新会话而不是重新启动初始会话(可能是因为它使用了诸如session_start()或session_id()之类的php函数。

如果我使用

storage_id: session.storage.mock_file

身份验证有效,但csrf保护在所有形式都失败。

Symfony 2.0没有发生这种情况。

这是否意味着Symfony 2.1现在与外部身份验证提供程序不兼容?

有没有办法使用symfony Session Managment进行AVOID?我应该将此报告为改进/错误吗?

提前致谢,

Afonso Martins Vaz

2 个答案:

答案 0 :(得分:1)

我刚遇到类似的问题,在探索NativeFileSessionStorage后,我发现Symfony 2.1将会话保存在...缓存文件夹中。简单的配置更改:

framework:
    ...
    session:
        name:          %session_name%
        cookie_domain: %cookie_domain%
        cookie_path:   %cookie_path%
        save_path:     ~

为我做了一个技巧 - 最后一个参数 save_path 将cookie保存路径重置为默认值,因此SimpleSamlPhp库现在可以读取身份验证数据。

答案 1 :(得分:0)

我们通过使用memsache和simplesaml php解决了这个问题。 (see this link

这样simplesamlphp会话不会弄乱Symfony2 Session,我们可以同时使用Symfony2.1默认配置。