Symfony 始终重定向到登录页面

Symfony 始终重定向到登录页面,symfony,Symfony,我有以下问题。在我的应用程序中存在一个登录和登录页面。如果用户单击“登录”链接,用户将始终重定向到登录页面 我在“security.yml”中的“access_control”中定义了登录页面的路径,如下所示: 我查看http头并找到一个重定向“302”,但在我的应用程序中找不到任何带有此重定向的代码段。我不知道为什么要执行重定向,有人能给我一个提示吗 GET /app_dev.php/user/register HTTP/1.1 Host: app.dev-local Accept: text

我有以下问题。在我的应用程序中存在一个登录和登录页面。如果用户单击“登录”链接,用户将始终重定向到登录页面

我在“security.yml”中的“access_control”中定义了登录页面的路径,如下所示:

我查看http头并找到一个重定向“302”,但在我的应用程序中找不到任何带有此重定向的代码段。我不知道为什么要执行重定向,有人能给我一个提示吗

GET /app_dev.php/user/register HTTP/1.1
Host: app.dev-local
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=j7enuu35aguids9e0bqc4at195
Referer: http://app.dev-local/app_dev.php/login
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36

HTTP/1.1 302 Found
Cache-Control: no-cache
Connection: close
Content-Type: text/html; charset=UTF-8
Date: Tue, 03 Mar 2015 06:36:27 GMT
Location: http://app.dev-local/app_dev.php/login
Server: Apache/2.4.10 (Ubuntu)
Transfer-Encoding: chunked
X-Debug-Token: 0ec022
X-Debug-Token-Link: /app_dev.php/_profiler/0ec022
使用“注册”防火墙更新我的“security.yml”:

security:
    access_decision_manager:
        strategy: unanimous
    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        secured_area:
            pattern:   ^/
            anonymous: ~
            form_login:
                login_path: login
                check_path: login_check
                csrf_provider: form.csrf_provider
                success_handler: app_user_handler_login
                failure_handler: app_user_handler_login
            logout:
                path:   /logout
                target: /login
            switch_user: {role: ROLE_ADMIN}
        signup:
            pattern:  ^/user/register
            anonymous: true

    access_control:
        - { path: ^/scale, roles: ROLE_WISA }
        - { path: ^/scale/add, roles: ROLE_WISA }
        - { path: ^/scale/edit, roles: ROLE_WISA }
        - { path: ^/scale/delete, roles: ROLE_ADMIN }
        - { path: ^/scale/activate, roles: ROLE_WISA }
        - { path: ^/scale/deactivate, roles: ROLE_WISA }
        - { path: ^/questionnaire, roles: ROLE_WISA }
        - { path: ^/questionnaire/add, roles: ROLE_WISA }
        - { path: ^/questionnaire/edit, roles: ROLE_WISA }
        - { path: ^/questionnaire/delete, roles: ROLE_ADMIN }
        - { path: ^/questionnaire/activate, roles: ROLE_WISA }
        - { path: ^/questionnaire/deactivate, roles: ROLE_WISA }
        - { path: ^/roles, roles: ROLE_ADMIN }
        - { path: ^/roles/add, roles: ROLE_ADMIN }
        - { path: ^/roles/edit, roles: ROLE_ADMIN }
        - { path: ^/user, roles: ROLE_MAB_MA }
        - { path: ^/user/add, roles: ROLE_ADMIN }
        - { path: ^/user/edit, roles: ROLE_MAB_MA }
        - { path: ^/user/delete, roles: ROLE_ADMIN }
        - { path: ^/user/show-profile, roles: ROLE_MAB_MA }
        - { path: ^/user/deactivate, roles: ROLE_EDITOR }
        - { path: ^/user/activate, roles: ROLE_EDITOR }
        - { path: ^/user/absense/archive, roles: ROLE_MAB_MA }
        - { path: ^/user/password/change, roles: ROLE_MAB_MA }
        - { path: ^/user/loginhistory, roles: ROLE_MAB_MA }
        - { path: ^/school, roles: ROLE_MAB_MA }
        - { path: ^/school/add, roles: ROLE_EDITOR }
        - { path: ^/school/deactivate, roles: ROLE_EDITOR }
        - { path: ^/school/activate, roles: ROLE_EDITOR }
        - { path: ^/school/delete, roles: ROLE_ADMIN }
        - { path: ^/school/edit, roles: ROLE_EDITOR }
        - { path: ^/school/profile, roles: ROLE_MAB_MA }
        - { path: ^/institution, roles: ROLE_MAB_MA }
        - { path: ^/institution/add, roles: ROLE_EDITOR }
        - { path: ^/institution/deactivate, roles: ROLE_EDITOR }
        - { path: ^/institution/activate, roles: ROLE_EDITOR }
        - { path: ^/institution/delete, roles: ROLE_ADMIN }
        - { path: ^/institution/edit, roles: ROLE_EDITOR }
        - { path: ^/district/add, roles: ROLE_EDITOR }
        - { path: ^/district/edit, roles: ROLE_EDITOR }
        - { path: ^/district, roles: ROLE_MAB_MA }
        - { path: ^/district/deactivate, roles: ROLE_EDITOR }
        - { path: ^/district/activate, roles: ROLE_MAB_MA }
        - { path: ^/district/delete, roles: ROLE_ADMIN }
        - { path: ^/exclusion-periods/add, roles: ROLE_EDITOR }
        - { path: ^/exclusion-periods/edit, roles: ROLE_EDITOR }
        - { path: ^/exclusion-periods, roles: ROLE_MAB_MA }
        - { path: ^/exclusion-periods/deactivate, roles: ROLE_EDITOR }
        - { path: ^/exclusion-periods/activate, roles: ROLE_MAB_MA }
        - { path: ^/exclusion-periods/delete, roles: ROLE_ADMIN }
        - { path: ^/municipality/edit, roles: ROLE_EDITOR }
        - { path: ^/municipality/add, roles: ROLE_EDITOR }
        - { path: ^/municipality, roles: ROLE_MAB_MA }
        - { path: ^/municipality/delete, roles: ROLE_ADMIN }
        - { path: ^/permissions-category/add, roles: ROLE_ADMIN }
        - { path: ^/permissions-category/edit, roles: ROLE_ADMIN }
        - { path: ^/permissions-category, roles: ROLE_ADMIN }
        - { path: ^/permissions-category/deactivate, roles: ROLE_ADMIN }
        - { path: ^/permissions-category/activate, roles: ROLE_ADMIN }
        - { path: ^/permissions-category/delete, roles: ROLE_ADMIN }
        - { path: ^/permissions/add, roles: ROLE_ADMIN }
        - { path: ^/permissions/edit, roles: ROLE_ADMIN }
        - { path: ^/permissions, roles: ROLE_ADMIN }
        - { path: ^/permissions/deactivate, roles: ROLE_ADMIN }
        - { path: ^/permissions/activate, roles: ROLE_ADMIN }
        - { path: ^/permissions/delete, roles: ROLE_ADMIN }
        - { path: ^/province/add, roles: ROLE_EDITOR }
        - { path: ^/province/edit, roles: ROLE_EDITOR }
        - { path: ^/province, roles: ROLE_MAB_MA }
        - { path: ^/province/deactivate, roles: ROLE_EDITOR }
        - { path: ^/province/activate, roles: ROLE_MAB_MA }
        - { path: ^/province/delete, roles: ROLE_ADMIN }
        - { path: ^/schooltype/add, roles: ROLE_EDITOR }
        - { path: ^/schooltype/edit, roles: ROLE_EDITOR }
        - { path: ^/schooltype, roles: ROLE_MAB_MA }
        - { path: ^/schooltype/deactivate, roles: ROLE_EDITOR }
        - { path: ^/schooltype/activate, roles: ROLE_EDITOR }
        - { path: ^/schooltype/delete, roles: ROLE_ADMIN }
        - { path: ^/languages/add, roles: ROLE_ADMIN }
        - { path: ^/languages/edit, roles: ROLE_ADMIN }
        - { path: ^/languages/activate, roles: ROLE_ADMIN }
        - { path: ^/languages/deactivate, roles: ROLE_ADMIN }
        - { path: ^/languages/delete, roles: ROLE_ADMIN }
        - { path: ^/languages, roles: ROLE_EDITOR }
        - { path: ^/projects/add, roles: ROLE_EDITOR }
        - { path: ^/projects/edit, roles: ROLE_EDITOR }
        - { path: ^/projects, roles: ROLE_MAB_MA }
        - { path: ^/projects/deactivate, roles: ROLE_EDITOR }
        - { path: ^/projects/activate, roles: ROLE_EDITOR }
        - { path: ^/projects/delete, roles: ROLE_ADMIN }
        - { path: ^/characteristics/add, roles: ROLE_EDITOR }
        - { path: ^/characteristics/edit, roles: ROLE_EDITOR }
        - { path: ^/characteristics, roles: ROLE_MAB_MA }
        - { path: ^/characteristics/deactivate, roles: ROLE_EDITOR }
        - { path: ^/characteristics/activate, roles: ROLE_MAB_MA }
        - { path: ^/characteristics/delete, roles: ROLE_ADMIN }
        - { path: ^/user/import, roles: ROLE_ADMIN }
        - { path: ^/user/export, roles: ROLE_ADMIN }
        - { path: ^/school/import, roles: ROLE_ADMIN }
        - { path: ^/school/export, roles: ROLE_ADMIN }
        - { path: ^/userdocumentation/edit, roles: ROLE_MAB_MA }
        - { path: ^/userdocumentation/add, roles: ROLE_MAB_MA }
        - { path: ^/userdocumentation, roles: ROLE_MAB_MA }
        - { path: ^/userdocumentation/activate, roles: ROLE_EDITOR }
        - { path: ^/userdocumentation/deactivate, roles: ROLE_EDITOR }
        - { path: ^/userdocumentation/delete, roles: ROLE_ADMIN }
        - { path: ^/application-ajax/school/list, roles: ROLE_MAB_MA }
        - { path: ^/application-ajax/school/province, roles: ROLE_MAB_MA }
        - { path: ^/application-ajax/school/municipality, roles: ROLE_MAB_MA }
        - { path: ^/application-ajax/school/branch, roles: ROLE_MAB_MA }
        - { path: ^/application-ajax/schooltype/branch, roles: ROLE_MAB_MA }
        - { path: ^/application-ajax/district/province, roles: ROLE_MAB_MA }
        - { path: ^/application-ajax/province/municipality, roles: ROLE_MAB_MA }
        - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/languages/change, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/application-ajax/password/generate$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/user/register, roles: IS_AUTHENTICATED_ANONYMOUSLY}
        - { path: ^/blank, roles: ROLE_USER }
        - { path: ^/, roles: ROLE_USER }

    providers:
        administrators:
            entity: { class: appUserBundle:User, property: username }

    encoders:
        app\UserBundle\Entity\User: 
            algorithm: bcrypt

    role_hierarchy:
        ROLE_USER: ~
        ROLE_STUDENT: [ROLE_USER]
        ROLE_TEACHER: [ROLE_USER]
        ROLE_SCHOOL: [ROLE_USER]
        ROLE_MAB_MA: [ROLE_USER]
        ROLE_WISA: [ROLE_MAB_MA]
        ROLE_HEADMASTER: [ROLE_USER]
        ROLE_SCHOOL_PARENTS_COUNCIL: [ROLE_USER]
        ROLE_CLERK: [ROLE_MAB_MA]
        ROLE_JUNIOR_CONSULTANT: [ROLE_MAB_MA]
        ROLE_SENIOR_CONSULTANT: [ROLE_MAB_MA]
        ROLE_EXTERNAL_TEAMLEADER: [ROLE_MAB_MA]
        ROLE_INTERNAL_TEAMLEADER: [ROLE_MAB_MA]
        ROLE_TEAMLEADER: [ROLE_EXTERNAL_TEAMLEADER, ROLE_INTERNAL_TEAMLEADER]
        ROLE_SCHOOL_SUPERVISORY: [ROLE_MAB_MA]
        ROLE_SCHOOLOPERATOR: [ROLE_MAB_MA]
        ROLE_CLERK_CONTROLLER: [ROLE_TEAMLEADER, ROLE_CLERK]
        ROLE_EDITOR: [ROLE_CLERK_CONTROLLER, ROLE_SCHOOL_SUPERVISORY, ROLE_TEACHER, ROLE_STUDENT, ROLE_JUNIOR_CONSULTANT, ROLE_SENIOR_CONSULTANT, ROLE_WISA, ROLE_HEADMASTER, ROLE_SCHOOL_PARENTS_COUNCIL, ROLE_SCHOOLOPERATOR]
        ROLE_ADMIN: [ROLE_EDITOR]

现在我解决了我的问题:)问题是我的访问控制区域中有一个路由“/用户”。这还包括url“用户/注册”。我将我的url名称更改为“/注册”。现在这个问题已经为我解决了,非常感谢您的支持

非连接用户无法访问您的登录表单

选中此行:

secured_area:
        pattern:   ^/
这意味着除“/”之外的所有url模式都需要连接的用户。包括报名表。您可能需要为注册表单添加特定的防火墙

只需为注册表单添加特定防火墙:

signup:
        pattern:  ^/user/register
        anonymous: true
编辑:正如我在评论中所说,这个顺序有一定的重要性。在定义路径列表时(如示例中所示),将使用第一个匹配路径

- { path: ^/user, roles: ROLE_MAB_MA }
- { path: ^/user/register, roles: IS_AUTHENTICATED_ANONYMOUSLY}
您应该限制您的路径:

- { path: ^/user$, roles: ROLE_MAB_MA }

实际上,
/user/register
将与
^/user
匹配

您能显示整个
security.yml
文件吗?这可能是对某些路由的错误配置。@i-am-michiel我添加了整个安全性。yml
-{path:^/user/register,roles:is_AUTHENTICATED\u ANONYMOUSLY}
似乎不在您的安全性中。yml,您确定已包含它吗?@doncallisto这是“访问控制”部分中倒数第三个。或者你指的是另一个区域?@i-am-michiel现在我为路由“/user/register”创建了一个特定的防火墙“注册”。如果我将新防火墙放置在现有的“安全区域”上,并调用url进行注册,则会出现例外情况“访问此资源需要完全身份验证”。如果我把“注册”防火墙放在“安全区域”下,重定向到登录页面会再次出现。我还清除了apc缓存、文件和浏览器缓存。安全组件使用第一个与模式匹配的防火墙。如果您将它放在现有防火墙下,它将不会被使用。@i-am-michiel好的,现在我明白了,谢谢您的支持
- { path: ^/user$, roles: ROLE_MAB_MA }