【问题标题】:Why do I seem as not authenticated in Symfony debug profiler?为什么我在 Symfony 调试分析器中似乎没有经过身份验证?
【发布时间】:2014-06-11 07:05:49
【问题描述】:

当我在 Symfony 调试分析器中通过http://domain/app_dev.php/ru/ 打开我的主页时,我有以下信息:

Logged in as:  admin
Authenticated: No
Token class:   UsernamePasswordToken

我的security.yml 是:

providers:
    users:
        entity:
            class: BWUserBundle:User    
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    auth:
        pattern:    ^/
        anonymous:  ~
        form_login:
            login_path: /%locale%/user/sign-in
            check_path: user_sign_in_check
            success_handler: bw_user.auth_success_handler
        logout:
            path:   user_sign_out
            target: home

access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }
    - { path: ^/demo/secured/hello/admin/, roles: ROLE_ADMIN }

为什么我以 admin 身份成功登录后没有通过身份验证?帮助理解它的含义?

【问题讨论】:

  • 我们需要查看您的security.yml 来调试问题,并且还想知道您遇到此行为的工作网址是什么?
  • @DebreczeniAndrás 是的,我更新了我的问题
  • Victor,你的 User 类实现了 UserInterface 吗?
  • @tomazahlin 不,我实现了Symfony\Component\Security\Core\User\AdvancedUserInterface
  • 您的用户提供商在哪里以及如何在您的 security.yml 中设置。 form_login 应该有一个提供者节点。

标签: symfony authentication profiler


【解决方案1】:

你实际上已经移除了 Symfony 的默认防火墙:

dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

您必须在您的securty.yml 中声明它是第一个防火墙。

【讨论】:

  • 我删除了它,但仍未通过身份验证
  • 不,你需要拥有它security.xml :) 根据你的问题,我假设你之前已经删除了它......
  • 我明白了,Symfony 的默认防火墙是存在的,我忘了显示问题
  • 啊,那好吧……我会想点别的;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 2022-01-03
相关资源
最近更新 更多