Symfony2 security.yml:http基本身份验证返回的是500而不是401
我正在尝试使用symfony 2设置一个非常简单的http基本身份验证。不幸的是,我一直收到一个500 HTTP错误代码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
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
键下使用了keyrealm
。请参阅上一章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 [] []