在我正在开发的应用程序中,我对安全组件的访问控制有一个奇怪的问题。Symfony2访问控制重定向登录
我用FOSUserBundle为用户和(当然)我复制从包的文档的例子中的访问控制规则,我security.yml
登录屏幕(/login
)的作品完美,但问题是,所有其他的访问控制规则绝对没有无论效果如何。例如,当用户转到/register
时,他被重定向到/login
,/resetting
也是如此。
这是我security.yml
文件:
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
firewalls:
dev:
pattern: ^/(\_(profiler|wdt)|css|images|js)/
security: false
api:
pattern: ^/api
anonymous: false
form_login: false
provider: fos_userbundle
http_basic:
realm: "REST Service Realm"
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: ~
switch_user: { role: ROLE_SUPER_ADMIN, parameter: _impersonate }
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/superadmin/, role: ROLE_SUPER_ADMIN }
我试图含有/resetting
和/register
,路径转向安全性,而且明确将无法正常工作,因为安全令牌仍然需要可用于FOSUserBundle控制器。
任何帮助将不胜感激!
path:^/register不是用来检测寄存器和重置页面吗? – VBee
哦,是的,应该是,'path:^/register(。*)'是我改变尝试让它工作的东西。原来它的确是'路径:^/register'。我会编辑我原来的问题。 –
你使用dev env?缓存清楚吗? – VBee