2013-11-11 2 views
0

Я просмотрел документацию silex http://silex.sensiolabs.org/doc/providers/security.html, и я использую HTTP-аутентификацию, чтобы позволить одному пользователю войти в бэкэнд системы.Sailx Authentication Firewall Issue

Несмотря на то, что это работает на локальной копии, на сервере оно не работает, отказываясь от входа в систему. Раньше у меня была эта проблема при использовании файла htpasswd, и я смог исправить это, запустив php в режиме cgi, но это не помогло в этом случае.

$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==') , 
     ), 
    ), 
    ) 
)); 

ответ

2

Есть некоторые проблемы с заголовками, которые содержат данные авторизации в php-cgi на Apache. Это может быть вашей проблемой. Попробуйте добавить файл .htaccess со следующим:

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

Источник: Symfony/Component/HttpFoundation/ServerBag.php