A. *_*nez 11 authentication symfony
我有一个使用基本in_memory
身份验证的Symfony 2应用程序(如安全文档中所述).登录在我们的开发环境中正常工作.但是在登台服务器上,基本身份验证似乎没有提供正确的令牌 - 如在此提供的日志文件中所见 - ; 因此我们一次又一次地获取登录弹出窗口.
我们的安全配置:
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
Run Code Online (Sandbox Code Playgroud)
这是(成功)开发环境登录的日志输出:
[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. [] []
Run Code Online (Sandbox Code Playgroud)
这是登台环境登录的日志输出:
[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 [] []
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
小智 9
您的开发环境可能将PHP作为mod_php运行,而您的登台服务器可能正在将其作为FastCGI运行.默认情况下,当您通过HTTP basic进行身份验证时,不会在此上下文中填充PHP_AUTH_USER
和PHP_AUTH_PW
服务器变量,这些是Symfony用于创建安全性上下文和验证密码的内容.
如果你在Apache上运行它作为FCGI,你可以解决这个问题.一种是强制FastCGI传递Authorization标头,它通常会抑制它.将其添加到其他FastCGI配置选项旁边的Apache站点定义中:
FcgidPassHeader Authorization
Run Code Online (Sandbox Code Playgroud)
对于其他应用程序,你可能还需要浪费时间在更大程度(如描述在这里),但Symfony的刚好路过的标题应该是足够的.
归档时间: |
|
查看次数: |
9066 次 |
最近记录: |