Symfony2 security.yml:http基本身份验证返回的是500而不是401

Symfony2 security.yml:http基本身份验证返回的是500而不是401,symfony,basic-authentication,Symfony,Basic Authentication,我正在尝试使用symfony 2设置一个非常简单的http基本身份验证。不幸的是,我一直收到一个500 HTTP错误代码AccessDeniedException:Access Denied,而不是401,这将迫使浏览器显示用户名/密码框 这是我的安全。yml: jms_security_extra: secure_all_services: false expressions: true security: firewalls: secured_are

我正在尝试使用symfony 2设置一个非常简单的http基本身份验证。不幸的是,我一直收到一个500 HTTP错误代码
AccessDeniedException:Access Denied
,而不是401,这将迫使浏览器显示用户名/密码框

这是我的安全。yml:

jms_security_extra:
    secure_all_services: false
    expressions: true

security:
    firewalls:
        secured_area:
            pattern:    ^/
            anonymous: ~
            http_basic:
                realm: "Flow"

    access_control:
        - { path: ^/flow/checkout/, roles: ROLE_USER }

    providers:
        in_memory:
            memory:
                users:
                    user:  { password: userpass, roles: ROLE_USER }
                    admin: { password: kitten, roles: ROLE_ADMIN }

    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
你知道怎么了吗

这是我正在调用的URL:
http://local.shop/web/app_dev.php/flow/checkout

这就是我得到的答案:

您是否尝试了
模式:.*

security:
    firewalls:
        secured_area:
            pattern: .*
            anonymous: ~
            http_basic:
                realm: "Flow"
我假设您的防火墙被绕过,您试图直接访问应用程序的“部分”,如果您没有经过身份验证,您将无法访问该部分

使用“旧”路径,仅当请求是指向
/
url时,才要求防火墙“考虑请求”(这意味着/foo或/foo/bar或/foo/bar/foobar不会被拦截)

更新
这是一个日志示例,当内核截获对“必须有身份验证”资源的请求时

您不应该在安全区域选项卡下使用表单登录:{check_path:…,login_path:…}吗?不。我使用的是http基本身份验证。一旦收到403响应,浏览器就会处理这个问题。好的,对这个概念不太熟悉,但您可以查看完整的安全配置参考:我看到在
http\u digest
键下使用了key
realm
。请参阅上一章HTTP摘要身份验证,如果它有助于在标题中说明这是关于HTTP基本身份验证的。http摘要身份验证是另一回事。我现在也有这个问题。我认为默认情况下框架应该返回403,但是正在将异常转换为500,就像所有未捕获的异常一样。更改模式没有帮助。没有任何更改(缓存已清除;-)。@BetaRide:您请求的url是什么?@BetaRide:您确定我的解决方案不合适吗?我确信
/
不会拦截您的呼叫,因此,您对browserI是匿名的。我调试了防火墙组件,可以确认
/
将拦截从
/
@BetaRide:从您的屏幕截图上看,请求似乎没有被防火墙拦截。查看我的更新
[2013-03-18 09:20:48] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
[2013-03-18 09:20:48] security.INFO: Populated SecurityContext with an anonymous Token [] []
[2013-03-18 09:20:48] security.INFO: No expression found; abstaining from voting. [] []
[2013-03-18 09:20:48] event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\Security\Http\Firewall\ExceptionListener::onKernelException". [] []
[2013-03-18 09:20:48] security.DEBUG: Access is denied (user is not fully authenticated) by "/var/www/html/cm/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall/AccessListener.php" at line 73; redirecting to authentication entry point [] []
[2013-03-18 09:20:48] security.DEBUG: Calling Authentication entry point [] []