2012-09-28 46 views
2

我使用Symfony 2.0和simplesamlphp完全没有问题。Symfony 2.1上的新会话管理问题

当我迁移到Symfony的2.1,与simplesamlphp外部认证采空工作。

一些研究,我发现Symfony的2.1 HTTP基金会目前拥有http://symfony.com/doc/master/components/http_foundation/sessions.html记录会话枭雄之后。

发生这个问题是因为s​​implesamlphp服务提供者开始一个新的会话而不是回想初始会话(也许是因为它使用了php函数,如session_start()或session_id())。

如果我使用

storage_id: session.storage.mock_file 

认证的作品,但CSRF保护各种形式的失败。

这种行为在Symfony 2.0中没有发生。

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

有没有办法避免使用symfony Session Managment?我应该报告这是一个改进/错误?

由于提前,

阿丰索·马丁斯·瓦斯

回答

0

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

这样simplesamlphp会话不会与Symfony2会话混淆,我们可以使用Symfony2.1默认配置。

+0

Thx男人,你救了我的一天:) – Atyz

1

我只是碰到类似的问题,并围绕NativeFileSessionStorage戳后,来到我发现,Symfony的2.1保存在一个...缓存文件夹会话。简单的配置变化:

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

做了把戏对我来说 - 最后一个参数的save_path重置的cookie保存路径为默认,所以SimpleSamlPhp库现在可以读取认证数据。

+0

问题是SimpleSamlPhp使用对session_start()或session_id()的函数调用来创建新会话,我认为这不是Symfony推荐的。这似乎是会话冲突。 – Fonsini