2011-02-09 4 views
1

인증 문제에 대한 해결책을 찾고 있습니다. 작년 5 월에 동일한 문제 (하단 2 위)가있는 한 명 (심포니 사용자 Google 그룹)을 만났습니다. 내가 알 수있는 한, 해결책을 나열하지 않았습니다.sfDoctrineGuardPlugin이 확인 후 자격 증명을 잊음

Mac OS X의 개발 환경에서 sfDoctrineGuardPlugin이 제대로 작동하고 있습니다. 보안 페이지에 액세스하려고하면 로그인으로 리디렉션됩니다. 유효한 자격 증명을 입력하면 초기 요청 페이지로 리디렉션됩니다.

DreamHost의 테스트 환경에서 제대로 작동하지 않습니다. 보안 페이지에 액세스하려고하면 로그인으로 리디렉션됩니다. 유효한 자격증 명을 입력하면 처음 요청한 페이지로 리디렉션되지만 심포니는 내 인증 상태를 잃고 다시 비워진 양식으로 다시 로그인하도록 리디렉션됩니다. (대조적으로 잘못된 자격 증명을 입력하면 로그인 페이지에 오류 메시지가 표시되고 사용자 이름은 계속 채워집니다.)

각 환경에서 심포니는 내 자격 증명이 유효하고 'admin' 권한을 요청하지만 요청한 페이지로 다시 리디렉션되는 즉시 해당 자격 증명을 잊어 버릴 수 있습니다.

재미있는 것은 아파치 오류 로그에 나타납니다.

데브 로그 미리보기 :

 
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) 

는 데브의 탐색/_navMenu 라인을 차지 백엔드/템플릿/layout.php에서이 조각을 언급 아마 가치 테스트 중이 아닙니다 :
<?php if ($sf_user->isAuthenticated()): ?>
    <?php include_component('navigation', 'navMenu'); ?>
    ...
 <?php endif ?>

관련 게시물 : symfony-users 그룹 :

symfony와 apache 모두에 대한 로그를 확인해야합니다.

가브리엘 5 월 28 일 오후 2시 33분에

, sdwdd 썼다 :

안녕하세요, 모두.

심포니 1.4 설치에 문제가 몇 가지는 : [무관]
1. sfGuard 플러그인을
2. 문제.
테스트 환경에서는 사용자가 로그인 한 후 테스트 환경에서 세션이 느슨하게되지만 개발 환경에서는 정상적으로 작동합니다. 사용자 이 로그인되지만 페이지 재로드 후 인증 세션은 입니다.

설치는 sfGuardPlugin이 포함 된 심포니 1.4 코어와 사용자 정의 템플릿 입니다.

그에 대한 아이디어가 있습니까? 서버 구성에 문제가있는 것 같지만 무엇이 잘못 될 수 있는지 알지 못합니다 (memory_limit를 512Mb로 로 제기).

감사합니다,
SERG

+0

접속하려는 페이지와 로그인 페이지의 URL은 어떻게됩니까? 하위 도메인으로 진행되는 모든 낯선 곳, 또는 이와 비슷한 것? –

+0

질문에 감사드립니다. 아니요, URL은 로그의 내용과 일치합니다. 하위 도메인 횡단 문제가 없습니다. 문제의 원인을 호스팅 환경에 설치된 강화 된 PHP 확장으로 추적하여 해결책을 찾았습니다. 아래 답변으로 게시했습니다. – Ryan

답변

0

나는 심포니 사용자 구글 그룹에서 팁 후 답을 발견했다.

첫 번째 팁 :

이 서버에 세션에 문제가 될 것으로 보인다. 세션 변수가 저장되어 있지 않으면 인증 상태를 저장할 수 없습니다. 세션 변수가 작동하지 않는 이유를 Dreamhost 지원에 문의해야합니다.

크리스토프 | Stof

두 번째 팁 :

이것은 심포니 관련 제안이 아니다.
종종 세션 문제가 suhosin 모듈에 의해 발생했습니다. 에는 많은 우분투 기반 호스트가 포함되어 있습니다. 세션 암호화를 에서 끄고 도움이되는지 확인하십시오. 예를 들어 문서 루트가 암호화의 일부인 경우가 있는데 예상대로 작동하지 않을 수 있습니다.
HTH
친절 감사,
요헨 다음 세대

그것은 나의 환경을 호스팅하는 가능성이 문제의 원인 수호신 경화 PHP를 사용하는 것으로 나타났다. 내 솔루션 검색에 수호신을 추가, 나는 이 발견 oldforums.symfony-project.org :

제목 : Re : 우분투 서버에서 유지되지 않습니다 사용자 세션 [메시지 # 100928 메시지 번호에 대한 응답이다 100918]
월요일, 14 6 월 2010 19:33 dklanac
여기 내 마지막 게시물입니다. 문제는 내 테스트 환경에서만 발생한다는 것을 알았습니다. sfSessionTestStorage가 필요한 쿠키를 설정하지 않았습니다. sfSessionStorage로 변경하고 "cookie"접미어로 쿠키의 이름을 변경하여 프로덕션 쿠키 충돌을 방지하고 적절한 동작을 보였습니다. 이것은 또한 일반적인 sfSessionStorage 클래스를 사용하기 때문에 왜 내 dev 인스턴스에서 올바른 동작을 볼 수 있었는지 설명합니다.

우리는 dev, test, stage 및 production에 별도의 하위 도메인을 사용하므로 내 솔루션은 훨씬 간단했습니다. 방금 sfSessionTestStorage를 apps/appname/config/factories.yml의 sfSessionStorage로 변경했습니다. 에서 쿠키 이름을 변경해야한다고 생각하지 않습니다.

관련 문제