2012-09-28 62 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