当我尝试登录时,页面会自动重定向。这是我得到的Firefox错误:
页面未正确重定向
Firefox检测到服务器正在重定向请求 这个地址永远不会完成。
任何想法可能导致它?
SECURITY.YML:
security:
encoders:
FixedApp\Model\User:
algorithm: sha1
encode_as_base64: false
iterations: 1
role_hierarchy:
ROLE_ADMIN: [ROLE_USER, ROLE_LIMITED_ADMIN]
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
administrators:
entity: { class: FixedApp\Model\User, property: username }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/$
security: false
secured_area:
pattern: ^/
form_login:
check_path: fixed_app_authentication_login
login_path: fixed_app_authentication_homepage
username_parameter: username
password_parameter: password
default_target_path: fixed_app_authentication_homepage
always_use_default_target_path: true
success_handler: security.authentication.success_handler
logout:
path: fixed_app_authentication_logout
target: fixed_app_homepage
# To give access to the ROLE_LIMITED_ADMIN, use - role: [ROLE_USER, ROLE_LIMITED_ADMIN]
access_control:
- { path: ^/log-in$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /home, roles: ROLE_USER }
的routing.yml:
fixed_app_homepage:
pattern: /
defaults: { _controller: FixedAppAuthenticationBundle:Default:index }
fixed_app_authentication_homepage:
pattern: /home
defaults: { _controller: FixedAppAuthenticationBundle:Default:loggedIn }
fixed_app_authentication_logout:
path: /log-out
# Verify the log in
fixed_app_authentication_login:
pattern: /log-in
AUTHENTICATIONSUCCESSHANDLER.PHP 如果我评论回程线,那没有区别。
function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
return new RedirectResponse($this->router->generate('fixed_app_authentication_homepage'));
}
答案 0 :(得分:1)
form_login:
login_path: fixed_app_authentication_homepage
登录后不是您重定向到的地方,而是实际登录的位置,并且当您在身份验证失败时重定向时,必须允许匿名用户。因此,如果您发现身份验证失败,您将获得无限的重定向行为。
您需要允许它为IS_AUTHENTICATED_ANONYMOUSLY
E.g。
- { path: /home, roles: IS_AUTHENTICATED_ANONYMOUSLY }
如果这不符合您的意图,您需要为login_path创建一个单独的页面,然后然后成功地重定向到您的安全/主页。