【发布时间】:2017-07-26 17:14:32
【问题描述】:
我的防火墙规则无法正常工作。我有一个角色为D-COMPLIANCEDIALOG 的用户,以及一个授予对该规则的访问权限的防火墙规则:- { path: ^/ , roles: D-COMPLIANCEDIALOG }。我仍然收到拒绝访问(访问被拒绝,用户既不是匿名用户,也不是记住我。)。
#security.yml
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
providers:
reddot:
id: reddot_user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
anonymous: ~
http_basic: ~
simple_form:
authenticator: reddot_authenticator
check_path: login_check
login_path: login
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/ , roles: D-COMPLIANCEDIALOG }
来自 symfony profiler 的用户数据:
Username admin
Authenticated? yes
Roles [D-COMPLIANCEDIALOG]
Inherited Roles { }
Token class Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken
我检查了什么:
- 控制器没有自己的安全设置
- 角色名好像没有错别字
- 它确实是防火墙规则中的最后一行,如果我删除它,我确实可以访问。
【问题讨论】:
-
您可能希望使用
$使您的登录访问控制path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY以确保您的login_check 路由是安全的symfony.com/doc/master/bundles/FOSUserBundle/…
标签: symfony