简体   繁体   English

登录Symfony2后进行循环重定向

[英]Loop Redirect after login Symfony2

I'm trying to create a login form in symfony2 我正在尝试在symfony2中创建一个登录表单

When enter correct information, the redirect enter in loop and a message: "No data received" or "Connect Reset" is showed. 输入正确的信息后,重定向进入循环,并显示一条消息:“未收到数据”或“连接重置”。 if i enter with wrong information, the message: Bad Credencial is showed. 如果我输入的信息有误,则会显示消息:Bad Credencial。

My security.yml 我的security.yml

Segue o security.yml que criei 安全问题

 dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login_firewall:
        pattern:  ^/login$
        anonymous: ~

    secured_area:
        pattern: ^/
        provider: meu_provider
        form_login:
            login_path: login
            check_path: login_check                
        logout:
            path: logout
            target: homepage

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }

The user IS ROLE_USER in $user->getRoles() 用户是$ user-> getRoles()中的ROLE_USER

Thanks! 谢谢!

Sorry by my English! 对不起,我的英语!

In cookbook http://symfony.com/doc/current/cookbook/security/form_login_setup.html firewall containing login form and check path (which is the same in example) are defined in firewall which can be accessed by anonymous users. 在食谱http://symfony.com/doc/current/cookbook/security/form_login_setup.html中,防火墙中定义了包含登录表单和检查路径的防火墙(示例中相同),匿名用户可以访问该防火墙。

In your config only /login is accessible (line: pattern: ^/login$). 在您的配置中,仅/ login可以访问(行:pattern:^ / login $)。

尝试将anonymous: ~更改为security: false login_firewall部分中的 security: false

Your login and login_check routes should be under the firewall you are using. 您的login和login_check路由应位于所使用的防火墙下。 In other words, you have to remove/comment those 3 lines: 换句话说,您必须删除/注释这三行:

    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    #login_firewall:
    #    pattern:  ^/login$
    #    anonymous: ~

    secured_area:
        pattern: ^/
        provider: meu_provider
        form_login:
            login_path: login
            check_path: login_check                
        logout:
            path: logout
            target: homepage

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }

This line - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - is enough for users being able to use login form without having a redirection loop. 这行- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } -对于用户而言,可以使用登录表单而没有重定向循环就足够了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM