gpt4 book ai didi

authentication - Symfony 2 在基本身份验证后接收匿名 token

转载 作者:行者123 更新时间:2023-12-04 02:13:31 25 4
gpt4 key购买 nike

我有一个使用基本 in_memory 的 Symfony 2 应用程序身份验证(如 security documentation 中所述)。登录在我们的开发环境中工作正常。但是在登台服务器上,基本身份验证似乎没有提供正确的 token - 如特此提供的日志文件所示 - ;因此我们不断地一次又一次地获得登录弹出窗口。

我们的安全配置:

security:
firewalls:
secured_area:
pattern: ^/
anonymous: ~
http_basic:
realm: "Secured Demo Area"

access_control:
- { path: ^/admin, roles: [ROLE_ADMIN]}

providers:
in_memory:
users:
admin: { password: admin, roles: 'ROLE_ADMIN' }

encoders:
Symfony\Component\Security\Core\User\User: plaintext

这是(成功)开发环境登录的日志输出:
[2011-07-21 13:49:48] security.DEBUG: Read SecurityContext from the session [] []
[2011-07-21 13:49:48] security.DEBUG: Reloading user from user provider. [] []
[2011-07-21 13:49:48] security.DEBUG: Username "root" was reloaded from user provider. [] []

这是登台环境登录的日志输出:
[2011-07-21 13:53:08] security.INFO: Populated SecurityContext with an anonymous Token [] []
[2011-07-21 13:53:08] security.DEBUG: Access denied (user is not fully authenticated); redirecting to authentication entry point [] []
[2011-07-21 13:53:08] security.DEBUG: Calling Authentication entry point [] []

预先感谢您的帮助。

最佳答案

您的开发环境可能将 PHP 作为 mod_php 运行,而您的登台服务器可能将它作为 FastCGI 运行。默认情况下,PHP_AUTH_USERPHP_AUTH_PW当您通过 HTTP basic 进行身份验证时,服务器变量不会填充在此上下文中,而这些是 Symfony 用于创建安全上下文并验证您的密码的内容。

如果您在 Apache 上将其作为 FCGI 运行,您可以解决此问题。一种是强制 FastCGI 传递 Authorization header ,它通常会抑制它。将此添加到其他 FastCGI 配置选项旁边的 Apache 站点定义中:

FcgidPassHeader     Authorization

对于其他应用程序,您可能还需要更大程度地乱搞(如 here 所述),但对于 Symfony,只需传递 header 就足够了。

关于authentication - Symfony 2 在基本身份验证后接收匿名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com