我使用Symfony2系统进行用户身份验证,当具有除ROLE_ADMIN之外的其他角色的用户尝试登录时,他可以,但他在403页面上被阻止。这是我的安全配置:
security:
encoders:
Me\UserBundle\Entity\User:
algorithm: sha512
encode-as-base64: true
iterations: 10
providers:
main:
entity:
class: Me\UserBundle\Entity\User
property: username
firewalls:
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
default_target_path: /admin/user/
logout:
path: /logout
target: /login
access_control:
- { path: ^/admin/, roles: [ROLE_ADMIN] }
- { path: ^/account, roles: [IS_AUTHENTICATED_FULLY] }
我希望如果用户尝试使用除ROLE_ADMIN之外的其他角色进行日志记录,则他会在登录表单上返回并显示身份验证错误,并且不会在任何地方使用403错误进行记录。 我该怎么办? 谢谢
答案 0 :(得分:1)
仅在配置时才能获得此行为。由于抛出AccessDeniedException是正常行为(用户已通过身份验证,因此需要将她/他重定向到身份验证),您必须处理 AccessDenied。
请参阅解释如何创建和使用 AccessDeniedHandler 的this answer。