2011-02-09 18 views
1

認証の問題の解決策を探しています。昨年の5月に同じ問題(#2を底にして)を持っている1人(symfony-users Googleグループ内)しか見つかりませんでした。私が知る限り、解決策は掲載されていませんでした。sfDoctrineGuardPluginは、確認後に資格情報を忘れます

私の開発環境では、Mac OS XではsfDoctrineGuardPluginが正常に動作しています。安全なページにアクセスしようとすると、私はログインにリダイレクトされます。有効な資格情報を入力すると、最初に要求されたページにリダイレクトされます。

DreamHostのテスト環境で正しく動作していません。安全なページにアクセスしようとすると、私はログインにリダイレクトされます。正当な資格情報を入力すると、最初に要求されたページにリダイレクトされますが、symfonyは自分の認証ステータスを失い、フォームを空にして再度ログインするようにリダイレクトします。 (無効な資格情報を入力すると、ログインページにエラーメッセージが表示され、ユーザー名は入力されたままです。)

各環境で、symfonyは自分の資格情報が有効で、私のリクエストされたページにリダイレクトされるとすぐにテストが忘れられます。

Apacheのエラーログに興味深いものはありません。

Devのログスニペット:

 
Feb 09 10:05:51 symfony [info] {sfPatternRouting} Match route "report" (/report.:sf_format) for /report with parameters array ( 'module' => 'report', 'action' => 'index', 'sf_format' => 'html',) 
Feb 09 10:05:52 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 10:05:52 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 10:05:52 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter" 
Feb 09 10:05:52 symfony [info] {sfBasicSecurityFilter} Action "report/index" requires authentication, forwarding to "sfGuardAuth/signin" 
Feb 09 10:05:52 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 10:05:52 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 10:05:52 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter" 
Feb 09 10:05:52 symfony [info] {sfGuardAuthActions} Call "sfGuardAuthActions->executeSignin()" 
Feb 09 10:05:52 symfony [info] {sfPHPView} Render "/Library/WebServer/WebSites/Documents/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/signinSuccess.php" 
Feb 09 10:05:52 symfony [info] {sfPartialView} Render "/Library/WebServer/WebSites/Documents/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/_signin_form.php" 
Feb 09 10:05:52 symfony [info] {sfPHPView} Decorate content with "/Library/WebServer/WebSites/Documents/apps/backend/templates/layout.php" 
Feb 09 10:05:52 symfony [info] {sfPHPView} Render "/Library/WebServer/WebSites/Documents/apps/backend/templates/layout.php" 
Feb 09 10:05:52 symfony [info] {sfWebResponse} Send status "HTTP/1.1 401 Unauthorized" 
Feb 09 10:05:52 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8" 
Feb 09 10:05:52 symfony [info] {sfWebDebugLogger} Configuration 12.62 ms (12) 
Feb 09 10:05:52 symfony [info] {sfWebDebugLogger} Factories 58.15 ms (1) 
Feb 09 10:05:52 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 6.18 ms (1) 
Feb 09 10:05:52 symfony [info] {sfWebDebugLogger} View "Success" for "sfGuardAuth/signin" 13.92 ms (1) 
Feb 09 10:05:52 symfony [info] {sfWebDebugLogger} Partial "sfGuardAuth/_signin_form" 4.84 ms (1) 
Feb 09 10:05:52 symfony [info] {sfWebResponse} Send content (53797 o) 
Feb 09 10:06:04 symfony [info] {sfPatternRouting} Match route "sf_guard_signin" (/login) for /login with parameters array ( 'module' => 'sfGuardAuth', 'action' => 'signin',) 
Feb 09 10:06:04 symfony [info] {sfGuardSecurityUser} User is authenticated 
Feb 09 10:06:04 symfony [info] {sfGuardSecurityUser} Add credential(s) "admin" 
Feb 09 10:06:04 symfony [info] {sfFrontWebController} Redirect to "http://localhost/backend_dev.php/" 
Feb 09 10:06:04 symfony [info] {sfWebResponse} Send status "HTTP/1.1 302 Found" 
Feb 09 10:06:04 symfony [info] {sfWebResponse} Send header "Location: http:/localhost/backend_dev.php/" 
Feb 09 10:06:04 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8" 
Feb 09 10:06:04 symfony [info] {sfWebDebugLogger} Configuration 1.30 ms (8) 
Feb 09 10:06:04 symfony [info] {sfWebDebugLogger} Factories 58.35 ms (1) 
Feb 09 10:06:04 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 217.06 ms (1) 
Feb 09 10:06:04 symfony [info] {sfWebDebugLogger} Database (Doctrine) 0.03 ms (5) 
Feb 09 10:06:04 symfony [info] {sfWebResponse} Send content (123 o) 
Feb 09 10:06:04 symfony [info] {sfPatternRouting} Match route "homepage" (/) for/with parameters array ( 'module' => 'report', 'action' => 'index',) 
Feb 09 10:06:04 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 10:06:04 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 10:06:04 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter" 
Feb 09 10:06:04 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter" 
Feb 09 10:06:04 symfony [info] {reportActions} Call "reportActions->executeIndex()" 
Feb 09 10:06:04 symfony [info] {sfPHPView} Render "/Library/WebServer/WebSites/Documents/apps/backend/modules/report/templates/indexSuccess.php" 
Feb 09 10:06:05 symfony [info] {main} Call "navigation->executeNavMenu()" 
Feb 09 10:06:05 symfony [info] {sfWebResponse} Send status "HTTP/1.1 200 OK" 
Feb 09 10:06:05 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8" 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} Configuration 1.93 ms (10) 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} Factories 60.49 ms (1) 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} Action "report/index" 66.68 ms (1) 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} Database (Doctrine) 0.02 ms (3) 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} View "Success" for "report/index" 454.39 ms (1) 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} Component "navigation/navMenu" 0.17 ms (1) 
Feb 09 10:06:05 symfony [info] {sfWebDebugLogger} Partial "navigation/_navMenu" 19.78 ms (1) 
Feb 09 10:06:05 symfony [info] {sfWebResponse} Send content (164075 o) 

テストログスニペット:

 
Feb 09 06:21:36 symfony [info] {sfPatternRouting} Match route "report" (/report.:sf_format) for /report with parameters array ( 'module' => 'report', 'action' => 'index', 'sf_format' => 'html',) 
Feb 09 06:21:36 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 06:21:36 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 06:21:36 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter" 
Feb 09 06:21:36 symfony [info] {sfBasicSecurityFilter} Action "report/index" requires authentication, forwarding to "sfGuardAuth/signin" 
Feb 09 06:21:36 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 06:21:36 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 06:21:36 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter" 
Feb 09 06:21:36 symfony [info] {sfGuardAuthActions} Call "sfGuardAuthActions->executeSignin()" 
Feb 09 06:21:36 symfony [info] {sfPHPView} Render "/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/signinSuccess.php" 
Feb 09 06:21:36 symfony [info] {sfPartialView} Render "/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/_signin_form.php" 
Feb 09 06:21:36 symfony [info] {sfPHPView} Decorate content with "/home/username/test.example.com/project/apps/backend/templates/layout.php" 
Feb 09 06:21:36 symfony [info] {sfPHPView} Render "/home/username/test.example.com/project/apps/backend/templates/layout.php" 
Feb 09 06:21:36 symfony [info] {sfWebDebugLogger} Configuration 822.85 ms (12) 
Feb 09 06:21:36 symfony [info] {sfWebDebugLogger} Factories 343.18 ms (1) 
Feb 09 06:21:36 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 7.63 ms (1) 
Feb 09 06:21:36 symfony [info] {sfWebDebugLogger} View "Success" for "sfGuardAuth/signin" 19.09 ms (1) 
Feb 09 06:21:36 symfony [info] {sfWebDebugLogger} Partial "sfGuardAuth/_signin_form" 4.44 ms (1) 
Feb 09 06:21:36 symfony [info] {sfWebResponse} Send content (52356 o) 
Feb 09 06:21:45 symfony [info] {sfPatternRouting} Match route "sf_guard_signin" (/login) for /login with parameters array ( 'module' => 'sfGuardAuth', 'action' => 'signin',) 
Feb 09 06:21:45 symfony [info] {sfGuardSecurityUser} User is authenticated 
Feb 09 06:21:45 symfony [info] {sfGuardSecurityUser} Add credential(s) "admin" 
Feb 09 06:21:45 symfony [info] {sfFrontWebController} Redirect to "http://test.rippil.com/backend_dev.php/" 
Feb 09 06:21:45 symfony [info] {sfWebDebugLogger} Configuration 21.18 ms (8) 
Feb 09 06:21:45 symfony [info] {sfWebDebugLogger} Factories 162.69 ms (1) 
Feb 09 06:21:45 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 233.96 ms (1) 
Feb 09 06:21:45 symfony [info] {sfWebDebugLogger} Database (Doctrine) 0.03 ms (7) 
Feb 09 06:21:45 symfony [info] {sfWebResponse} Send content (118 o) 
Feb 09 06:21:46 symfony [info] {sfPatternRouting} Match route "homepage" (/) for/with parameters array ( 'module' => 'reporttt', 'action' => 'index',) 
Feb 09 06:21:46 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 06:21:46 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 06:21:46 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter" 
Feb 09 06:21:46 symfony [info] {sfBasicSecurityFilter} Action "report/index" requires authentication, forwarding to "sfGuardAuth/signin" 
Feb 09 06:21:46 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" 
Feb 09 06:21:46 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" 
Feb 09 06:21:46 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter" 
Feb 09 06:21:46 symfony [info] {sfGuardAuthActions} Call "sfGuardAuthActions->executeSignin()" 
Feb 09 06:21:46 symfony [info] {sfPHPView} Render "/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/signinSuccess.php" 
Feb 09 06:21:46 symfony [info] {sfPartialView} Render "/home/username/test.example.com/project/plugins/sfDoctrineGuardPlugin/modules/sfGuardAuth/templates/_signin_form.php" 
Feb 09 06:21:46 symfony [info] {sfPHPView} Decorate content with "/home/username/test.example.com/project/apps/backend/templates/layout.php" 
Feb 09 06:21:46 symfony [info] {sfPHPView} Render "/home/username/test.example.com/project/apps/backend/templates/layout.php" 
Feb 09 06:21:46 symfony [info] {sfWebDebugLogger} Configuration 13.92 ms (12) 
Feb 09 06:21:46 symfony [info] {sfWebDebugLogger} Factories 251.75 ms (1) 
Feb 09 06:21:46 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 31.00 ms (1) 
Feb 09 06:21:46 symfony [info] {sfWebDebugLogger} View "Success" for "sfGuardAuth/signin" 57.79 ms (1) 
Feb 09 06:21:46 symfony [info] {sfWebDebugLogger} Partial "sfGuardAuth/_signin_form" 8.09 ms (1) 
Feb 09 06:21:46 symfony [info] {sfWebResponse} Send content (52428 o) 

それはおそらくdevにナビゲーション/ _navMenuラインを考慮したバックエンド/テンプレート/のlayout.phpからこのスニペットを言及する価値がありますテスト中ではありません。
<?php if ($sf_user->isAuthenticated()): ?>
    <?php include_component('navigation', 'navMenu'); ?>
    ...
 <?php endif ?>

symfony-usersグループの関連する投稿:

symfonyとapacheの両方のログをチェックする必要があります。

ガブリエル

5月28日、14:33には、sdwddは書きました:

こんにちは、すべてを。
1. sfGuardプラグインに問題
2. [無関係]:symfonyの1.4インストールで問題のカップルを持っ


開発環境では問題なく動作しますが、ユーザがログインした後のテスト 環境では、セッションが失われます。ユーザー がログインしますが、ページのリロード後に認証セッションが失われました。 が失われました。

インストールはsymfony 1.4とsfGuardPluginのコアで、一部は カスタムテンプレートです。

これらのアイデアはありますか?私は、サーバ の設定に問題があるように感じていますが、何が間違っているのか分かりません(memory_limitを512Mbに設定しました。 )。

おかげで、
Serg

+0

アクセスしようとしているページのURLとログインページはどうなっていますか?サブドメインで起こっているどんな奇妙さ、それとも何か? –

+0

ご質問ありがとうございます。いいえ、URLはログの内容と一致します。サブドメイン交差の問題はありません。問題の原因をホストされた環境にインストールされた強化されたPHPエクステンションにトラッキングして解決策を導き出しました。私は以下の答えとしてそれを掲示した。 – Ryan

答えて

0

私はsymfonyユーザーのGoogleグループからのヒントの後に答えを見つけました。

最初のヒント:

これは、サーバー上のセッションの問題のようです。セッション変数が格納されていない場合、認証ステータスは保存できません。 Dreamhostのサポートに、セッション変数が機能しない理由を知る必要があります。

Christophe | STOF

第2の先端:

これはsymfony関連の提案ではありません。
多くの場合、セッションの問題は、suhosinモジュールによって引き起こされました。 には、多くのUbuntuベースのホストが付属しています。セッション暗号化を からオフにして、役立つかどうか確認してください。たとえば、文書 ルートが暗号化の一部であり、期待どおりに動作しないことがあります。
HTH
種類よろしく、
ヨッヘン・ダウム

は、それは私のホスティング 環境がそう 問題の原因であるsuhosin硬化PHPを使用していることが判明しました。私の解探索にsuhosinの追加、私はoldforums.symfony-project.org でこれを見つけた:

日時:ユーザー・セッションはUbuntuのサーバー上で保持されません[メッセージ#100928は、メッセージ#100918への返信です]
2010年6月14日(月)19:33 dklanac
私の最後の投稿です。問題は私のテスト環境だけにあるとわかりました。 sfSessionTestStorageが必要なCookieを設定していませんでした。 sfSessionStorageに変更し、Cookieの競合を防ぐために「test」という接尾辞を付けてCookieの名前を変更しました。これは、通常のsfSessionStorageクラスも使用しているため、devのインスタンスで正しい動作を確認できた理由を説明します。

私たちはdev、test、stage、productionのために別々のサブドメインを使用していますので、私の ソリューションはさらに簡単でした。私はsfSessionTestStorageをapps/appname/config/factories.ymlの sfSessionStorageに変更しました。私は がクッキー名を変更する必要があるとは思わない。

関連する問題