注销后Symfony2无法正确重定向

时间:2014-05-07 13:38:29

标签: symfony

我使用Symfony 2.2.11和BeSimpleSsoAuth包(ref 4ba8ada3)进行SSO-CAS身份验证。

当我退出时,我已正确地重定向到SSO的注销页面。然后,SSO将我重定向到我的webapp上的/ login_check,最后将我重定向到登录页面。这对我来说(几乎)很好。 “差不多”来自这样一个事实:我不明白为什么我被重定向到login_check,而不是我的security.yml文件包含的根目录:

firewalls:
    people:
        pattern: ^/
        switch_user: true
        trusted_sso:
            manager: my_cas
            login_action: false
            logout_action: false
            create_users: false
        logout:
            path:   /logout
            target: /

access_control:
    - { path: ^/owner/*, roles: ROLE_OWNER }
    - { path: ^/user/*, roles: ROLE_USER }

我认为target意味着注销页面应重定向的位置。还有一个问题:如果我再次从我重定向到的页面再次登录,那么我将直接重定向到/login_check,这会产生以下错误:

  

无法找到路径" / login_check"的控制器。也许您忘了在路由配置中添加匹配路由?

但如果我直接访问我的应用的根目录(让我们说http://localhost/test/web/app_dev.php),我会被重定向到:

  • SSO登录页面:https://sso-cas.myprovider.com/login?service=http%3A%2F%2Flocalhost%2Ftest%2Fweb%2Fapp_dev.php%2Flogin_check
  • 然后:http://localhost/test/web/app_dev.php/login_check?ticket=ST-433244-dLDEe4hoShmzdp26f2dU-sso-cas.myprovider.com
  • 最后:http://localhost/test/web/app_dev.php/owner/

在这种情况下,与我遇到错误的其他情况相比,我毫无困难地访问/login_check。有什么不同?并且,附带问题,为什么我在注销后重定向到/login_check

谢谢!

0 个答案:

没有答案