認証の問題の解決策を探しています。去年の5月に同じ問題(一番下の#2)を持っている人(symfony-users Googleグループ)を1人だけ見つけました。私の知る限り、リストに解決策は投稿されていません。
Mac OS Xの開発環境では、sfDoctrineGuardPluginが正しく機能しています。安全なページにアクセスしようとすると、ログインにリダイレクトされます。有効なクレデンシャルを入力すると、最初に要求されたページにリダイレクトされます。
DreamHostのテスト環境では、正しく機能していません。安全なページにアクセスしようとすると、ログインにリダイレクトされます。有効なクレデンシャルを入力すると、最初に要求されたページにリダイレクトされますが、symfonyは認証ステータスを失い、フォームを空にしてもう一度ログインに(再)リダイレクトします。(対照的に、無効な資格情報を入力すると、ログインページにエラーメッセージが表示され、ユーザー名は入力されたままになります。)
各環境で、symfonyは私のクレデンシャルが有効であり、「admin」権限を持っていることを確認しますが、テストは要求されたページにリダイレクトされるとすぐにそれらのクレデンシャルを忘れます。
apacheエラーログには興味深いものは何も表示されません。
開発ログスニペット:
Feb 09 10:05:51 symfony [info] {sfPatternRouting} /reportのルート"report"(/report.:sf_format)をパラメーター配列('module' =>'report'、'action' =>'index')と一致させます、'sf_format' =>'html'、) 2月9日10:05:52symfony[info]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日10:05:52symfony[info]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日10:05:52symfony[info]{sfFilterChain}フィルター「sfBasicSecurityFilter」を実行しています 2月9日10:05:52symfony[info]{sfBasicSecurityFilter}アクション「report/index」には認証が必要です。「sfGuardAuth/signin」に転送します 2月9日10:05:52symfony[info]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日10:05:52symfony[info]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日10:05:52symfony[情報]{sfFilterChain}フィルター「sfExecutionFilter」を実行しています 2月9日10:05:52symfony[情報]{sfGuardAuthActions}「sfGuardAuthActions->executeSignin()」を呼び出す 2月9日10:05:52symfony[情報]{sfPHPView}レンダリング"/Library/WebServer/WebSites/Documents/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/signinSuccess.php" 2月9日10:05:52symfony[info]{sfPartialView}レンダリング"/Library/WebServer/WebSites/Documents/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/_signin_form.php" 2月9日10:05:52symfony[info]{sfPHPView}「/Library/WebServer/WebSites/Documents/apps/backend/templates/layout.php」でコンテンツを装飾する 2月9日10:05:52symfony[情報]{sfPHPView}レンダリング"/Library/WebServer/WebSites/Documents/apps/backend/templates/layout.php" 2月9日10:05:52symfony[情報]{sfWebResponse}ステータス「HTTP/1.1401未承認」を送信 2月9日10:05:52symfony[info]{sfWebResponse}ヘッダー「Content-Type:text / html; charset=utf-8」を送信します 2月9日10:05:52symfony[情報]{sfWebDebugLogger}構成12.62ミリ秒(12) 2月9日10:05:52symfony[情報]{sfWebDebugLogger}ファクトリ58.15ミリ秒(1) 2月9日10:05:52symfony[情報]{sfWebDebugLogger}アクション"sfGuardAuth/ signin" 6.18ミリ秒(1) 2月9日10:05:52symfony[info]{sfWebDebugLogger}「sfGuardAuth/signin」の「成功」を表示13.92ミリ秒(1) 2月9日10:05:52symfony[情報]{sfWebDebugLogger}部分的な"sfGuardAuth/ _signin_form" 4.84ミリ秒(1) 2月9日10:05:52symfony[情報]{sfWebResponse}コンテンツの送信(53797 o) Feb 09 10:06:04 symfony [info] {sfPatternRouting} /loginのルート"sf_guard_signin"(/ login)をパラメーター配列と一致させます('module' =>'sfGuardAuth'、'action' =>'signin'、) 2月9日10:06:04symfony[情報]{sfGuardSecurityUser}ユーザーが認証されました 2月9日10:06:04symfony[情報]{sfGuardSecurityUser}クレデンシャル「admin」を追加 2月9日10:06:04symfony[info]{sfFrontWebController}「http://localhost/backend_dev.php/」にリダイレクト 2009年2月10:06:04symfony[情報]{sfWebResponse}ステータス「HTTP/1.1302が見つかりました」を送信 2月9日10:06:04symfony[info] {sfWebResponse}ヘッダー「場所:http:/localhost/backend_dev.php/」を送信します 2月9日10:06:04symfony[info]{sfWebResponse}ヘッダー「Content-Type:text / html; charset=utf-8」を送信します 2月9日10:06:04symfony[情報]{sfWebDebugLogger}構成1.30ミリ秒(8) 2月9日10:06:04symfony[情報]{sfWebDebugLogger}ファクトリ58.35ミリ秒(1) 2月9日10:06:04symfony[情報]{sfWebDebugLogger}アクション"sfGuardAuth/ signin" 217.06 ms(1) 2月9日10:06:04symfony[情報]{sfWebDebugLogger}データベース(Doctrine)0.03ミリ秒(5) 2月9日10:06:04symfony[情報]{sfWebResponse}コンテンツの送信(123 o) Feb 09 10:06:04 symfony [info]{sfPatternRouting}ルート"homepage"(/)を/のパラメーター配列と一致させます('module' =>'report'、'action' =>'index'、) 2月9日10:06:04symfony[info]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日10:06:04symfony[info]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日10:06:04symfony[info]{sfFilterChain}フィルター「sfBasicSecurityFilter」を実行しています 2月9日10:06:04symfony[info]{sfFilterChain}フィルター「sfExecutionFilter」を実行しています 2月9日10:06:04symfony[info]{reportActions}「reportActions->executeIndex()」を呼び出す 2月9日10:06:04symfony[info]{sfPHPView}レンダリング"/Library/WebServer/WebSites/Documents/apps/backend/modules/report/templates/indexSuccess.php" 2月9日10:06:05symfony[info]{main}「navigation->executeNavMenu()」を呼び出す 2月9日10:06:05symfony[情報]{sfWebResponse}ステータス「HTTP/1.1200OK」を送信 2月9日10:06:05symfony[info]{sfWebResponse}ヘッダー「Content-Type:text / html; charset=utf-8」を送信します 2月9日10:06:05symfony[情報]{sfWebDebugLogger}構成1.93ミリ秒(10) 2月9日10:06:05symfony[情報]{sfWebDebugLogger}ファクトリ60.49ミリ秒(1) 2月9日10:06:05symfony[情報]{sfWebDebugLogger}アクション"レポート/インデックス"66.68ミリ秒(1) 2月9日10:06:05symfony[情報]{sfWebDebugLogger}データベース(Doctrine)0.02 ms(3) 2月9日10:06:05symfony[情報]{sfWebDebugLogger}「レポート/インデックス」の「成功」を表示454.39ミリ秒(1) 2月9日10:06:05symfony[情報]{sfWebDebugLogger}コンポーネント"navigation/ navMenu" 0.17 ms(1) 2月9日10:06:05symfony[情報]{sfWebDebugLogger}部分的な「navigation/_navMenu」19.78ミリ秒(1) 2月9日10:06:05symfony[情報]{sfWebResponse}コンテンツの送信(164075 o)
テストログスニペット:
Feb 09 06:21:36 symfony [info] {sfPatternRouting} /reportのルート"report"(/report.:sf_format)をパラメーター配列と一致させます('module' =>'report'、'action' =>'index' 、'sf_format' =>'html'、) 2月9日06:21:36symfony[情報]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日06:21:36symfony[情報]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日06:21:36symfony[info]{sfFilterChain}フィルター「sfBasicSecurityFilter」を実行しています 2月9日06:21:36symfony[info]{sfBasicSecurityFilter}アクション「report/index」には認証が必要です。「sfGuardAuth/signin」に転送します 2月9日06:21:36symfony[情報]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日06:21:36symfony[情報]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日06:21:36symfony[情報]{sfFilterChain}フィルター「sfExecutionFilter」を実行しています 2月9日06:21:36symfony[情報]{sfGuardAuthActions}「sfGuardAuthActions->executeSignin()」を呼び出す 2月9日06:21:36symfony[情報]{sfPHPView}レンダリング"/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/signinSuccess.php" 2月9日06:21:36symfony[info]{sfPartialView}レンダリング"/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/_signin_form.php" 2月9日06:21:36symfony[info]{sfPHPView}コンテンツを「/home/username/test.example.com/project/apps/backend/templates/layout.php」で飾ります 2月9日06:21:36symfony[情報]{sfPHPView}レンダリング"/home/username/test.example.com/project/apps/backend/templates/layout.php" 2月9日06:21:36symfony[情報]{sfWebDebugLogger}設定822.85ミリ秒(12) 2月9日06:21:36symfony[情報]{sfWebDebugLogger}ファクトリ343.18ミリ秒(1) 2月9日06:21:36symfony[情報]{sfWebDebugLogger}アクション"sfGuardAuth/ signin" 7.63ミリ秒(1) 2月9日06:21:36symfony[情報]{sfWebDebugLogger}「sfGuardAuth/signin」の「成功」を表示19.09ミリ秒(1) 2月9日06:21:36symfony[情報]{sfWebDebugLogger}部分的な"sfGuardAuth/ _signin_form" 4.44ミリ秒(1) 2月9日06:21:36symfony[情報]{sfWebResponse}コンテンツの送信(52356 o) Feb 09 06:21:45 symfony [info] {sfPatternRouting} /loginのルート"sf_guard_signin"(/ login)をパラメーター配列と一致させます('module' =>'sfGuardAuth'、'action' =>'signin'、) 2月9日06:21:45symfony[情報]{sfGuardSecurityUser}ユーザーが認証されました 2月9日06:21:45symfony[情報]{sfGuardSecurityUser}クレデンシャル「admin」を追加 2月9日06:21:45symfony[info]{sfFrontWebController}「http://test.rippil.com/backend_dev.php/」にリダイレクト 2月9日06:21:45symfony[情報]{sfWebDebugLogger}設定21.18ミリ秒(8) 2月9日06:21:45symfony[情報]{sfWebDebugLogger}ファクトリ162.69ミリ秒(1) 2月9日06:21:45symfony[情報]{sfWebDebugLogger}アクション"sfGuardAuth/ signin" 233.96ミリ秒(1) 2月9日06:21:45symfony[情報]{sfWebDebugLogger}データベース(Doctrine)0.03ミリ秒(7) 2月9日06:21:45symfony[情報]{sfWebResponse}コンテンツの送信(118 o) Feb 09 06:21:46 symfony [info] {sfPatternRouting}ルート「ホームページ」(/)を/のパラメーター配列と一致させます('module' =>'reporttt'、'action' =>'index'、) 2月9日06:21:46symfony[情報]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日06:21:46symfony[情報]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日06:21:46symfony[info]{sfFilterChain}フィルター「sfBasicSecurityFilter」を実行しています 2月9日06:21:46symfony[info]{sfBasicSecurityFilter}アクション「report/index」には認証が必要です。「sfGuardAuth/signin」に転送します 2月9日06:21:46symfony[情報]{sfFilterChain}フィルター「sfRenderingFilter」を実行しています 2月9日06:21:46symfony[情報]{sfFilterChain}フィルター「sfGuardRememberMeFilter」を実行しています 2月9日06:21:46symfony[情報]{sfFilterChain}フィルター「sfExecutionFilter」を実行しています 2月9日06:21:46symfony[情報]{sfGuardAuthActions}「sfGuardAuthActions->executeSignin()」を呼び出す 2月9日06:21:46symfony[情報]{sfPHPView}レンダリング"/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/signinSuccess.php" 2月9日06:21:46symfony[info]{sfPartialView}レンダリング"/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/_signin_form.php" 2月9日06:21:46symfony[info]{sfPHPView}コンテンツを「/home/username/test.example.com/project/apps/backend/templates/layout.php」で飾ります 2月9日06:21:46symfony[情報]{sfPHPView}レンダリング"/home/username/test.example.com/project/apps/backend/templates/layout.php" 2月9日06:21:46symfony[情報]{sfWebDebugLogger}設定13.92ミリ秒(12) 2月9日06:21:46symfony[情報]{sfWebDebugLogger}ファクトリ251.75ミリ秒(1) 2月9日06:21:46symfony[情報]{sfWebDebugLogger}アクション"sfGuardAuth/ signin" 31.00 ms(1) 2月9日06:21:46symfony[情報]{sfWebDebugLogger}「sfGuardAuth/signin」の「成功」を表示57.79ミリ秒(1) 2月9日06:21:46symfony[情報]{sfWebDebugLogger}部分的な"sfGuardAuth/ _signin_form" 8.09ミリ秒(1) 2月9日06:21:46symfony[情報]{sfWebResponse}コンテンツの送信(52428 o)
おそらく、開発ではナビゲーション/_navMenu行を説明しているがテストでは説明していないbackend/templates/layout.phpからのこのスニペットに言及する価値があります。
<?php if ($sf_user->isAuthenticated()): ?>
<?php include_component('navigation', 'navMenu'); ?>
...
<?php endif ?>
symfony-usersグループの関連記事:
symfonyとapacheの両方のログを確認する必要があります。
ガブリエル
5月28日午後2時33分、sdwddは次のように書いています。
こんにちは、みんな。
Symfony 1.4のインストールにいくつか問題があります:
1。[無関係]
2。sfGuardプラグインに問題があります。
開発環境では問題なく動作しますが、ユーザーがログインした後のテスト環境ではセッションが失われます。ユーザーはログインしますが、ページをリロードすると認証セッションが失われます。インストールは、sfGuardPluginといくつかのカスタムテンプレートを備えたコアSymfony1.4です。
それらについて何かアイデアはありますか?サーバー構成に問題があるように感じますが、何が間違っているのかわかりません(memory_limitを512Mbに上げました)。
ありがとう、
Serg