2011-02-09 98 views
1

我正在寻找解决方案来验证问题。去年五月,我只找到了一个人(在symfony用户的谷歌小组中),他们遇到了同样的问题(底层排名第二)。据我所知,没有解决方案发布到列表中。sfDoctrineGuardPlugin验证后忘记凭证

在我的Mac OS X开发环境中,sfDoctrineGuardPlugin工作正常。当我尝试访问安全页面时,我会重定向到登录页面。当我输入有效凭证时,我会重定向回到最初请求的页面。

在我的DreamHost测试环境中,它无法正常工作。当我尝试访问安全页面时,我会重定向到登录页面。当我输入有效的证书时,我被重定向回到最初请求的页面,但是symfony失去了我的身份验证状态,并且在清空的表单中再次重新定向登录。 (相反,如果我输入的凭据无效,则在登录页面上收到错误消息,并且用户名仍然填充。)

在每个环境中,symfony都会验证我的凭据是否有效,并且我拥有'admin'特权,但只要将它重定向到我请求的页面,就会测试忘记这些凭据。

没有什么有趣的东西出现在Apache错误日志中。

开发日志摘录:

 
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) 

这可能是值得一提的从后端/模板/ layout.php中该片段占在开发导航/ _navMenu线但没有在测试:
<?php if ($sf_user->isAuthenticated()): ?>
    <?php include_component('navigation', 'navMenu'); ?>
    ...
 <?php endif ?>

在symfony用户组中的相关文章:

您应该检查symfony和apache的日志。

加布里埃尔

5月28日,下午2:33,sdwdd写道:

嗨,所有。

有几个问题的Symfony 1.4安装:
1无关]
2. sfGuard插件的问题。
它在开发环境中可以正常工作,但是在用户登录后测试 环境中会丢失会话。用户 获得登录,但在页面重新加载之后,认证会话丢失 。

该安装是核心Symfony 1.4与sfGuardPlugin和一些 自定义模板。

对这些有什么想法?我感觉像服务器 配置有问题,但不知道什么可能是错的(将memory_limit 提高到512Mb)。

感谢,
SERG

+0

您想要访问的网页和登录页面的网址是什么样的?任何与子域名相关的奇怪事件,或类似的事情? – 2011-02-10 09:42:55

回答

0

我找到了答案,从symfony的用户谷歌集团后提示。

首先提示:

这似乎与你的服务器上的会话的问题。如果会话变量未存储,则无法保存认证状态。您应该询问Dreamhost支持以了解为什么会话变量不起作用。

Christophe | STOF

二提示:

这不是一个symfony的相关建议。
我经常发现会话问题是由suhosin模块引起的,其中 附带许多基于Ubuntu的主机。尝试关闭会话加密 ,看看它是否有帮助。我发现,例如有时文档 根是加密的一部分,它可能不会按预期工作。
HTH
亲切的问候,
约亨·道姆

事实证明,我的托管 环境使用了Suhosin硬化PHP这是有可能的 问题的原因。添加了Suhosin到我的解决方案的搜索,我发现这个在 oldforums.symfony-project.org:

回复:用户会话不Ubuntu服务器上坚持[消息#100928是消息#回复100918]
星期一,2010年6月14日19:33 dklanac
这是我最后的帖子。我发现问题只出现在我的测试环境中。 sfSessionTestStorage没有设置我需要的cookie。我将其更改为sfSessionStorage,并使用“test”后缀重命名了我的cookie,以防止生产cookie冲突,并且事情行为合适。这也解释了为什么我能够在我的dev实例中看到正确的行为,因为它也使用常规的sfSessionStorage类。

我们对dev,test,stage和production使用不同的子域名,所以我的 解决方案更简单。我只是在apps/appname/config/factories.yml中将sfSessionTestStorage更改为 sfSessionStorage。我不希望 需要更改cookie名称。