2014-06-13 5 views
1

내가하고 싶어.Symfony2 : 로그인 후 이전 페이지로 리디렉션

사용자는 개인 페이지에 액세스하려고 시도합니다 (로그인해야 함). 액세스하려고하면 이전에 자격 증명을 작성해야하는 becaouse에 액세스 할 수 없습니다. 그는 그의 passowrd를 쓰고 시스템에 로그인합니다. 사용자가 액세스하려고 시도한 페이지로 자동으로 리디렉션됩니다.

$this->getRequest()->headers->get('referer'); 

그리고 난 항상 (.../login.php) 로그인의 주소를 얻기 :

나는 security.yml

use_referer: true 

에 넣어 그리고 내 첫 번째 컨트롤러에서 나는 넣어 . 이 대신, 내가 예를 들어 구해야합니다 (.../다운로드/TEST.TXT)는

나는 또한 시도했다 :

$request->getSession()->get('_security.account.target_path'); 

하지만 난 널 얻을.

어떻게하면됩니까? 사전에

감사합니다! security.yml와

--- 편집 ---

firewalls: 
    frontend: 
     pattern:  ^/* 
     anonymous: ~ 
     simple-form: 
      authenticator: my_authenticator 
      check_path: login_check 
      login_path: login 
      use_referer: true 
      failure_path: login_error 
     logout: 
      path: logout 
      target:/
      success_handler: my_authenticator 
     remember_me: 
      key:  mykey 
      lifetime: 31536000 

     switch_user: { role: ROLE_ADMIN, parameter: _login_as } 

access_control: 
    - { path: ^/web/login.php, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 
    - { path: ^/web/login_error.php, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 
    - { path: ^/*, roles: [ROLE_USUARIO, ROLE_RESELLER, ROLE_ADMIN], requires_channel: https } 
+0

당신이 당신의'security.yml'의'access_control' 부분을 추가 할 수 있습니다 :이 동작과 함께 "방화벽"을 설정하는 방법을

확인이를? –

+0

예, 원래 게시물에 추가했습니다. 감사. – user3396420

+0

인증 성공 후 사용자가 방화벽 뒤의 url *로 리디렉션하도록하려면 @colburton이 지적한대로 'use_referer'가 필요하지 않을 수 있습니다. 제거해보십시오. –

답변

0

는 Symfony2은 기본적으로이 작업을 수행 할 것입니다. 사용자가 직접 로그인 페이지 (예 : 북마크)로 이동하는 경우에만 이동할 URL을 지정합니다. symfony security

+0

고마워,하지만 내 행동에 대한 작동하지 않는, 내 원래 게시물에 내 방화벽 구성을 추가했습니다. 감사합니다. – user3396420

+0

check_path 및 login_path routes.yml (또는 다른 위치), 실제 파일이 아니라 정의 된 경로가 필요합니다. – colburton

+0

확인 , check_path와 login_path를 routing.yml (check_path : login_check와 login_path : login)에 정의 된 라우터와 함께 넣었지만 시스템이 이전 페이지로 리다이렉트하지 않는다. – user3396420

관련 문제