我的申请分为三个部分:
- 管理:
^/backend
受IP保护 - 安全区域:
^/member
受登录保护 - 公共路线:
^/
一切正常,除了access_denied_url
. 我尝试指定一个路由名称以及一个普通路径。
当我/backend
从配置的 IP 以外的 IP 访问时,我收到以下消息:
访问此资源需要完全身份验证。 500 内部服务器错误 - InsufficientAuthenticationException 1 链接异常:AccessDeniedException »
在开发环境中,这个异常根本没有被捕获,导致致命错误,但该access_denied_url
选项不应该以某种方式重定向到给定的 url 吗?
这是我的security.yml:
security:
firewalls:
backend:
pattern: ^/backend
anonymous: ~
access_denied_url: /403
main:
pattern: ^/
anonymous: ~
form_login:
success_handler: my_auth_handler
failure_handler: my_auth_handler
use_referer: true
check_path: login_check
logout:
path: /logout
success_handler: my_auth_handler
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
access_control:
- { path: ^/backend, roles: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1] }
- { path: ^/backend, roles: ROLE_NO_ACCESS }
- { path: ^/userlounge, roles: IS_AUTHENTICATED_FULLY }
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
providers:
frontend:
id: my_user_provider
encoders:
My\FrontEndBundle\User\MyUser:
algorithm: md5
encode_as_base64: false
iterations: 1
提前感谢您的帮助!