2012-09-28 3 views
2

symphony 2.0을 simplesamlphp와 전혀 문제없이 사용하고있었습니다.Symfony 2.1의 새로운 세션 관리 관련 문제

Symfony 2.1로 마이그레이션했을 때 simplesamlphp로 외부 인증이 중단되었습니다.

약간의 연구 끝에 Symfony 2.1 HTTP Foundation이 현재 http://symfony.com/doc/master/components/http_foundation/sessions.html에 문서화 된 세션 관리 도구를 제공한다는 사실을 알게되었습니다.

simplesamlphp 서비스 공급자가 session_start() 또는 session_id()와 같은 PHP 함수를 사용하고 있기 때문에 초기 세션을 다시 검색하는 대신 새 세션을 시작하기 때문에 문제가 발생합니다.

내가

storage_id: session.storage.mock_file 

인증 작업을 사용하지만 CSRF 보호는 모든 형태에 실패합니다.

이 동작은 Symfony 2.0에서 발생하지 않았습니다.

이것은 Symfony 2.1이 외부 인증 공급자와 호환되지 않는다는 것을 의미합니까 ??

symfony Session Managment를 사용하여 피해야 할 방법이 있습니까? 내가 이것을 improbment/bug로보고해야 하는가? 아폰소 마틴 바즈가

답변

0

우리는 simplesaml php와 함께 memcache를 사용하여이 문제를 해결했습니다. (see this link)

이 방법 simplesamlphp 세션은 Symfony2 세션을 망치지 않으며 우리는 Symfony2.1 기본 구성과 함께 사용할 수 있습니다.

+0

Thx 남자, 당신은 내 하루를 저장 :) – Atyz

1

난 그냥 비슷한 문제를 가로 질러과 NativeFileSessionStorage 주위에 파고 뒤에 오는

사전에

덕분에, 나는 심포니 2.1은 ... 캐시 폴더에서 세션을 절약 할 수 있다는 것을 발견했습니다. 간단한 구성 변경 :

framework: 
    ... 
    session: 
     name:   %session_name% 
     cookie_domain: %cookie_domain% 
     cookie_path: %cookie_path% 
     save_path:  ~ 

나를 위해 속임수를 썼는지 - 마지막 매개 변수를 SimpleSamlPhp 라이브러리는 이제 인증 데이터를 읽을 수 있도록 쿠키를 기본으로 경로를 저장 재설정save_path합니다.

+0

문제는 SimpleSamlPhp이 symfony에서 권장하지 않는 session_start() 또는 session_id()에 대한 함수 호출을 사용하여 새 세션을 만들고 있다는 것입니다. 이것은 세션의 충돌처럼 보인다. – Fonsini