2

Symfony 2.0 と simplesamlphp をまったく問題なく使用していました。

Symfony 2.1 に移行したら、simplesamlphp による外部認証が機能しなくなりました。

いくつかの調査の後、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 セッション管理を使用して回避する方法はありますか? これを改善/バグとして報告する必要がありますか?

前もって感謝します、

アフォンソ・マルティンス・ヴァズ

4

2 に答える 2

1

同様の問題に遭遇し、NativeFileSessionStorage を調べたところ、Symfony 2.1 がセッションをキャッシュ フォルダーに保存することがわかりました。簡単な構成変更:

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

私のためにトリックをしました-最後のパラメーターsave_pathはCookieの保存パスをデフォルトにリセットするため、SimpleSamlPhpライブラリは認証データを読み取ることができます.

于 2013-01-23T16:17:39.013 に答える
0

simplesaml php で memcache を使用することで、この問題を解決しました。(このリンクを参照)

このようにして、simplesamlphp セッションは Symfony2 セッションを混乱させず、Symfony2.1 のデフォルト設定で両方を使用できます。

于 2013-03-14T13:13:56.130 に答える