重定向到ajax请求的登录页面

时间:2017-01-29 09:58:46

标签: ajax symfony

对于我的项目中的身份验证,我使用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 }

1 个答案:

答案 0 :(得分:1)

我发现:c)
很明显,anonymous: false问题必须是anonymous: ~ access_control与IS_AUTHENTICATED_ANONYMOUSLY协同工作