我将SF2与FOS用户包一起使用。
security:
providers:
fos_userbundle:
id: fos_user.user_provider.username
encoders:
FOS\UserBundle\Model\UserInterface: sha512
firewalls:
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: false
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
如果我将main: anonymous: false
设置为true
,我就不会再获得重定向循环,但是人们不需要登录即可访问所有内容(应该是这些内容!)
我认为 access_control
有一条^/login
路由的条目,这样人们就不需要进行身份验证,但我怀疑它并非如此。工作。
答案 0 :(得分:1)
这句话:
anonymous: false
这不再有效:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
因此框架无法重定向到导致重定向循环的登录(FOS需要匿名才能正常工作)
...我不会知道它是否有效,但你可以尝试设置
{ path: ^/*, role: ROLE_USER }
作为资产控制的第一行或最后一行,...不保证它有效,我会尝试为了创建您正在寻找的结果