これは僕がアホというか、単純にわかってなかっただけの話なのですが。 symfonyでは一定時間経つとユーザをログアウトさせるという設定が可能です。アプリケーションのfactories.ymlでuserのパラメータにtimeoutという値が設定でき、そこに秒数を指定するとできるようになります。 sfBasicSecurityUserクラスのinitialize()メソッドの中で、現在の時間と最終アクセス時の差分が設定したtimeoutよりも大きい場合、自動的にログアウトする処理を行っています。 その際にiniのsession.gc_maxlifetimeという値をユーザの自動ログアウトと同じ時間に設定しています。 session.gc_maxlifetimeという設定はセッションをクリアするまでの秒数を設定するものなのですが、てっきりここでセッションの有効時間もちゃんと設定してくれてすごいな