如果我没有登录,Symfony 防火墙不会重定向我
Posted
技术标签:
【中文标题】如果我没有登录,Symfony 防火墙不会重定向我【英文标题】:Symfony firewall doesn't redirect me if i'm not login 【发布时间】:2015-11-08 20:12:32 【问题描述】:好的,伙计们,我花了 10 个小时来寻找解决问题的方法。如果我没有登录,我在 Symfony 2.7 上的防火墙不会重定向我。
如果我访问 domain.com/admin/,防火墙应该将我重定向到 /login,但不会。
我使用 FOSUSerBundle。 我总是收到此错误消息:
您未通过身份验证 401 Unauthorized - HttpException 1 已链接 异常:AuthenticationCredentialsNotFoundException »
这是我的代码:
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/
context: site
form_login:
provider: fos_userbundle
check_path: /login_check
login_path: /login
logout:
path: /admin/logout
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
如果您愿意,这里是 phpStorm 中的代码:
感谢您的帮助!
【问题讨论】:
尝试将anonymous
设置为 true
用于管理防火墙。并且不要忘记清除缓存
我已经尝试过了,但没有成功:/匿名为真,错误消息是:“您没有必要的权限 - 403 Forbidden - AccessDeniedHttpException”(缓存已清除)
您可以尝试为管理员防火墙设置pattern: ^/admin/
吗?
好吧哇我终于找到问题了!! FOSRestBundle 与 FOSUserBundle 有冲突。如果我在 config.yml 中禁用 RestBundle,一切正常!!感谢您抽出时间维克多,我真的很感激!
@coolfarmer 你应该发布你的解决方案作为答案并接受它
【参考方案1】:
终于找到问题了!! FOSRestBundle 与 FOSUserBundle 有冲突。如果我在 config.yml 中禁用 RestBundle,一切正常!!
所以,我只是将我的 API 包移动到另一个 symfony 项目中。 一个项目用于我的 API,一个项目用于我的网站。
【讨论】:
以上是关于如果我没有登录,Symfony 防火墙不会重定向我的主要内容,如果未能解决你的问题,请参考以下文章
Symfony - 如何将用户重定向到登录后访问的最后一个页面?