我开始使用FOSUserBundle的新Symfony应用程序。
我安装它,加载捆绑并配置它。
这是我的configuration.yml
:
fos_user:
db_driver: orm
firewall_name: main
user_class: Myapp\UserBundle\Entity\User
和我的security.yml
:
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
in_memory:
memory: ~
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
anonymous: ~
main:
pattern: ^/
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
provider: fos_userbundle
csrf_provider: form.csrf_provider
default_target_path: /
logout: true
anonymous: true
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 }
现在,当我转到localhost/myapp/web/app_dev.php/login
时,我尝试登录后收到以下错误500(我在访问登录表单时没有问题,这是在我提交之后):
您必须使用安全防火墙配置中的form_login配置防火墙处理的检查路径
在我看来,我的安全防火墙配置中配置了form_login
...我缺少什么?
答案 0 :(得分:8)
我在想你没有导入FOSUserBundle的路由文件。你呢?
如果不这样你就是这样做的:
除此之外,default
防火墙的目的是什么?当它试图“找到正确使用的防火墙”时,它可能会拦截安全组件。