对于我的项目中的身份验证,我使用2个方法,form_login和Cas与单个Provider(用户)。
我在security.yml中设置了login_form,并为Cas创建了一个Guard
经过多次测试后,我设法将两个认证同居
现在我开始在我的页面中放置ajax并遇到一个新问题:我的所有ajax调用都被重定向到登录页面。
由于我的所有ajax路由都以/ api /开头,我试图输入security.yml
- {path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY}
但我仍然被重定向到登录页面......
我从3天开始寻找解释,但我还没有找到。
我的security.yml
...
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login_firewall:
pattern: ^/login$
anonymous: true
main:
pattern: ^/
anonymous: false
form_login:
provider: database
login_path: login
check_path: login_check
csrf_token_generator: security.csrf.token_manager
csrf_token_id: bien_authentifie
always_use_default_target_path: true
default_target_path: home
logout:
path: caslogout
target: https://xxx.xxxx.nnn/cas/logout
switch_user: true
guard:
provider: database
authenticators:
- xxx.cas_authenticator
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, roles: ROLE_ADMIN }
- { path: ^/, roles: ROLE_USER }
答案 0 :(得分:1)
我发现:c)
很明显,anonymous: false
问题必须是anonymous: ~
access_control与IS_AUTHENTICATED_ANONYMOUSLY协同工作