同一防火墙中的Symfony2身份验证方法


Symfony2 authentication method in the same firewall

我是Symfony2的新手。我阅读了文档,看到了一些登录表单的配置http://symfony.com/doc/current/cookbook/security/form_login_setup.html

# app/config/security.yml
security:
    # ...
    firewalls:
        default:
            anonymous: ~
            http_basic: ~
            form_login:
                login_path: /login
                check_path: /login_check

我不明白为什么在同一个防火墙中有两个安全方法http_basic和form_login?安全系统将使用哪种方法?http_basic或form_login或两者兼有?它是多余的吗?上面的一些问题看起来很愚蠢,但似乎symfony2安全组件文档太差了。

在旧的Symfony文档中有一个小提示:

当用户未通过身份验证时,如果存在多个身份验证机制,Symfony2自动定义默认入口点(在上面的例子中,是登录表单;但是如果用户发送带有错误凭据的Authorization HTTP标头,Symfony2将使用HTTP基本入口点)。

但在下一个版本中,当文档被重新组织时,它被减少了,我不知道为什么。

因此,我在GitHub上的symfony-docs存储库中打开了一个新问题,并提出了恢复提示的建议。

引用@WouterJ的回答:

代码似乎不再像引用的段落。它似乎总是使用表单登录,除非有没有发送身份验证标头,HTTP基本凭据为对的

所以你是对的——这不是小事。如果你想知道结论,就跟着这个问题来。