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