我使用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
),我会被重定向到:
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
?
谢谢!