Symfony のセキュリティ コンポーネントを次のように実装しました。
$app['security.firewalls'] = array(
'unsecured_area' => array(
pattern' => new RequestMatcher('^/log(in|out).*', null, 'GET')
)
, 'secured_area' => array(
'pattern' => '.*',
'edir' => true,
'users' => $app['security.user_provider.custom'],
'switch_user' => array('parameter' => '_switch_user', 'role' => 'ROLE_ALLOWED_TO_SWITCH')
)
);
ログアウトルートを呼び出すと、セッションが無効になります。
セキュリティコンテキストがセッションに保存されていることを理解している限り、ユーザーをログアウトするだけで十分です。しかし、彼はログアウトしていません。
ログアウトルートを保護された領域に配置してファイアウォールを更新すると、正常に$session->invalidate()
機能し、ユーザーはログアウトされます...
セキュリティで保護されていない領域で動作しないのはなぜですか? 非セキュア領域とは、非セッション領域という意味ではありませんよね?