0

我查看了 silex 文档http://silex.sensiolabs.org/doc/providers/security.html并且我正在使用 HTTP 身份验证来允许单个用户进入系统的后端。

虽然这适用于本地副本,但它不适用于服务器,拒绝登录。我以前在使用 htpasswd 文件时遇到过这个问题,并且能够通过在 cgi 模式下运行 php 来解决这个问题,但这在这种情况下没有帮助。

$app->register(new Silex\Provider\SecurityServiceProvider(), array(
    'security.firewalls' => array(
    'admin' => array(
        'pattern' => '^/admin',
        'http' => true,
        'users' => array(
             // raw password is foo
             'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg==')    ,
        ),
    ),
    )
));
4

1 回答 1

2

Apache 上 php-cgi 中包含授权数据的标头存在一些问题。这可能是你的问题。尝试使用以下内容添加 .htaccess 文件:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

来源:Symfony/Component/HttpFoundation/ServerBag.php

于 2013-11-18T18:31:10.617 回答